通过 Amazon CLI 使用 API 级(s3api)命令 - Amazon Command Line Interface
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文档仅适用于 Amazon CLI 版本 1。有关 Amazon CLI 版本 2 的相关文档,请参阅版本 2 用户指南

通过 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 参考指南s3api 部分中找到每个 S3 API 命令的示例。

先决条件

要运行 s3api 命令,您需要:

  • 安装和配置 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.comuser2@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 参考:

服务参考: