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