在 AWS CLI 中使用 API 级 (s3api) 命令 - AWS Command Line Interface

本文档仅适用于 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 CLIAWS CLI 身份验证和访问凭证

  • 您使用的配置文件必须具有允许示例代码执行AWS操作的权限。

  • 需了解如下 Amazon S3 术语:

    • 存储桶 – 顶级 Amazon S3 文件夹。

    • 前缀 – 存储桶中的 Amazon S3 文件夹。

    • 对象 – 托管在 Amazon S3 存储桶中的任何项。

应用自定义 ACL

对于高级别命令,您可以使用 --acl 选项对 Amazon S3 对象应用预定义的访问控制列表 (ACL)。但不能使用该命令设置存储桶范围的 ACL。但是,您可以通过使用 put-bucket-acl API 级命令来执行此操作。

下面的示例说明如何向两个 AWS 用户(user1@example.comuser2@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 参考:》

《服务参考:》