本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在中使用API等级 (s3api) 命令 AWS CLI
API级别命令(包含在s3api
命令集中)可直接访问亚马逊简单存储服务 (Amazon S3) Storage APIs Service,并启用一些未在高级命令中公开的s3
操作。这些命令等同于其他为 AWS
服务功能提供API级别访问权限的服务。有关 s3
命令的更多信息,请参阅 在中使用高级别 (s3) 命令 AWS CLI。
本主题提供的示例演示如何使用映射到 Amazon S3 APIs 的较低级别命令。此外,您还可以在的s3api
部分中找到每个 S3 API 命令的示例。
先决条件
要运行 s3api
命令,您需要:
安装和配置 AWS CLI。有关更多信息,请参阅安装或更新到最新版本的 AWS CLI 和的身份验证和访问凭证 AWS CLI。
-
您使用的配置文件必须具有允许示例执行 AWS 操作的权限。
-
需了解如下 Amazon S3 术语:
-
存储桶 – 顶级 Amazon S3 文件夹。
-
前缀 – 存储桶中的 Amazon S3 文件夹。
-
对象 – 托管在 Amazon S3 存储桶中的任何项。
-
应用自定义 ACL
使用高级命令,您可以使用--acl
选项将预定义的访问控制列表 (ACLs) 应用于 Amazon S3 对象。但是你不能使用该命令来设置存储桶范围ACLs。但是,你可以使用 level 命令来执行此操作。
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"'
有关如何构造的详细信息ACLs,请参阅《亚马逊简单存储服务API参考》中的存储PUT桶 acl。中的s3api
ACL命令CLI,例如put-bucket-acl
,使用相同的速记参数表示法。
配置日志记录策略
该API命令put-bucket-logging
用于配置存储桶日志记录策略。
在以下示例中, AWS 用户 user@example.com 被授予对日志文件的完全控制权,并且所有用户都拥有对日志文件的读取权限。请注意,还需要put-bucket-acl
使用该命令向 Amazon S3 日志传输系统(由 a 指定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 参考:
服务参考: