Amazon S3 CLI授予选项

Bro*_*oks 3 amazon-s3 amazon-web-services aws-cli

在AWS S3控制台中,您可以为"任何经过身份验证的AWS用户"授予文件权限,并授予"打开/下载"权限.

什么是CLI命令来做同样的事情?

我已经知道cp命令(用于上传):

aws s3 cp filename s3://bucket/folder/filename
Run Code Online (Sandbox Code Playgroud)

但是,我无法弄清楚--grants配置,并且文档并不特定于可接受的值.

如果您可以提供--grants标志的其余可接受值(例如查看权限,编辑权限),可以获得奖励吗?

这可以递归完成吗?

编辑1 我发现以下内容,但它使文件可供所有人(公共)使用.那么,我的组的URI在哪里?我假设它和小组的ARN不一样.

aws s3 cp file.txt s3://my-bucket/ --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers
Run Code Online (Sandbox Code Playgroud)

我们可以选择做:

aws s3 cp file.txt s3://my-bucket/ --grants full=emailaddress=user@example.com
Run Code Online (Sandbox Code Playgroud)

这将为与该电子邮件地址关联的帐户提供完全权限.

仍然无法镜像"任何经过身份验证的AWS用户"(我假设这是在我的帐户中进行身份验证).

Jam*_*mes 10

您应该使用该--acl参数来获取固定的权限:

aws s3 cp local.txt s3://some-bucket/remote.txt --acl authenticated-read
Run Code Online (Sandbox Code Playgroud)

aws s3 cp的文档描述了CLI的简写语法:

--acl(string)设置执行命令时对象的ACL.如果使用此参数,则必须在IAM策略的操作列表中包含"s3:PutObjectAcl"权限.仅接受private,public-read,public-read-write,authenticated-read,bucket-owner-read,bucket-owner-full-control和log-delivery-write的值.有关 详细信息,请参见固定ACL

--grants 似乎允许微调的自定义ACL,但语法更复杂,正如您所发现的那样.


hel*_*loV 5

检查此链接:在 AWS 命令​​行界面中使用高级 s3 命​​令

你可能想做:

aws s3 cp filename s3://bucket/folder/filename --grants read=uri=http://acs.amazonaws.com/groups/global/AllUsers
Run Code Online (Sandbox Code Playgroud)

对于递归,使用 --recursive 选项

当在带有 cp、mv 或 rm 的目录/文件夹上使用 --recursive 选项时,该命令会遍历目录树,包括所有子目录。这些命令也像同步命令一样接受 --exclude、--include 和 --acl 选项。