本文档仅适用于 AWS CLI 版本 1。有关 AWS CLI 版本 2 的相关文档,请参阅版本 2 用户指南。
在 AWS CLI 中使用 API 级 (s3api) 命令
API 级命令(包含在 s3api
命令集中)提供对 Amazon Simple Storage Service (Amazon S3) API 的直接访问,并且可以执行高级别 s3
命令中未公开的某些操作。这些命令等同于对服务功能提供 API 级访问的其他 AWS 服务的命令。有关 s3
命令的更多信息,请参阅 在 AWS CLI 中使用高级(s3)命令。
本主题提供了若干示例,以演示如何使用映射到 Amazon S3 API 的低级别命令。此外,您可以在 AWS CLI 参考指南的 s3api
部分中找到每个 S3 API 命令的示例。
先决条件
要运行 s3api
命令,您需要:
安装和配置 AWS CLI。有关更多信息,请参阅安装、更新和卸载 AWS CLI 和AWS CLI 身份验证和访问凭证。
-
您使用的配置文件必须具有允许示例代码执行AWS操作的权限。
-
需了解如下 Amazon S3 术语:
-
存储桶 – 顶级 Amazon S3 文件夹。
-
前缀 – 存储桶中的 Amazon S3 文件夹。
-
对象 – 托管在 Amazon S3 存储桶中的任何项。
-
应用自定义 ACL
对于高级别命令,您可以使用 --acl
选项对 Amazon S3 对象应用预定义的访问控制列表 (ACL)。但不能使用该命令设置存储桶范围的 ACL。但是,您可以通过使用 put-bucket-acl
API 级命令来执行此操作。
下面的示例说明如何向两个 AWS 用户(user1@example.com 和 user2@example.com)授予完全控制权限,并向所有人授予读取权限。“everyone”的标识符来自作为参数传递的特殊 URI。
$
aws s3api put-bucket-acl --bucket
amzn-s3-demo-bucket
--grant-full-control 'emailaddress="user1@example.com
",emailaddress="user2@example.com
"' --grant-read 'uri="http://acs.amazonaws.com/groups/global/AllUsers"'
有关如何构建 ACL 的详细信息,请参阅 Amazon Simple Storage Service API 参考中的 PUT Bucket acl。CLI 中的 s3api
ACL 命令(如 put-bucket-acl
)使用相同的 简化参数表示法。
配置日志记录策略
API 命令 put-bucket-logging
配置存储桶日志记录策略。
在下面的示例中,已向AWS用户 user@example.com 授予对日志文件的完全控制权限,而向所有用户授予了读取访问权限。请注意,还需要使用 put-bucket-acl
命令向 Amazon S3 的日志传输系统(由 URI 指定)授予必要的权限,以读取和向存储桶写入日志。
$
aws s3api put-bucket-acl --bucket
amzn-s3-demo-bucket
--grant-read-acp 'URI="http://acs.amazonaws.com/groups/s3/LogDelivery"' --grant-write 'URI="http://acs.amazonaws.com/groups/s3/LogDelivery"'$
aws s3api put-bucket-logging --bucket
amzn-s3-demo-bucket
--bucket-logging-status file://logging.json
上一个命令中的 logging.json
文件具有以下内容。
{ "LoggingEnabled": { "TargetBucket": "amzn-s3-demo-bucket", "TargetPrefix": "amzn-s3-demo-bucketLogs/", "TargetGrants": [ { "Grantee": { "Type": "AmazonCustomerByEmail", "EmailAddress": "
user@example.com
" }, "Permission": "FULL_CONTROL" }, { "Grantee": { "Type": "Group", "URI": "http://acs.amazonaws.com/groups/global/AllUsers" }, "Permission": "READ" } ] } }
资源
《AWS CLI 参考:》
《服务参考:》
-
《Amazon S3 开发人员指南》中的使用 Amazon S3 存储桶
-
《Amazon S3 用户指南》中的使用 Amazon S3 对象
-
《Amazon S3 用户指南》中的使用前缀和分隔符按层次结构列出密钥
-
《Amazon S3 用户指南》中的使用 AWS SDK for .NET(低级别)中止到 S3 存储桶的分段上传