AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门。
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
通过 AWS CLI 使用 API 级 (s3api) 命令
API 级命令(包含在 s3api 命令集中)提供对 Amazon Simple Storage Service (Amazon S3) API 的直接访问,可以执行高级别 s3 命令中未公开的某些操作。这些命令等同于对服务功能提供 API 级访问的其他 AWS 服务的命令。
本主题提供了若干示例,以演示如何使用映射到 Amazon S3 API 的低级别命令。此外,您可以在 CLI 参考指南的 s3api 部分中找到每个 S3 API 命令的示例。
在运行任何命令之前,请设置默认证书。有关更多信息,请参阅 配置 AWS CLI。
应用自定义 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 MyBucket --grant-full-control 'emailaddress="user1@example.com",emailaddress="user2@example.com"' --grant-read 'uri="http://acs.amazonaws.com.cn/groups/global/AllUsers"'
有关如何构建 ACL 的更多信息,请参阅 Amazon Simple Storage Service API Reference 中的 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 MyBucket --grant-read-acp 'URI="http://acs.amazonaws.com.cn/groups/s3/LogDelivery"' --grant-write 'URI="http://acs.amazonaws.com.cn/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.cn/groups/global/AllUsers"
},
"Permission": "READ"
}
]
}
}