如何在S3存储桶中修改多对象的ACL?

时间:2018-08-27 09:26:30

标签: amazon-web-services amazon-s3

我使用以下命令成功修改了s3的单个对象 命令

aws s3api put-object-acl --bucket private_doc --key private_125.jpg --acl private

如何将对象的所有ACL修改为名称以“ private”开头的private?

我的存储桶名称为 document454 。它由以下对象组成:private_123.pdf,private_234.pdf,member_123.doc,member_234.doc。

如何将以单词private开头的文件名的ACL转换为private模式?

2 个答案:

答案 0 :(得分:6)

此命令会将所有对象ACL转换为以doc开头的私有对象

aws s3 cp --recursive s3://bucket-name/ s3://bucket-name/ --acl private --metadata meta=nothing --exclude * --include "doc*"

答案 1 :(得分:3)

Amazon S3中的所有对象默认为私有

这可以通过几种方法更改:

  • 通过直接更改对象上的 ACL (如您所做的那样)
  • 通过创建存储桶策略,该策略可以授予整个存储桶或存储桶中的路径的权限
  • 通过授予针对特定 IAM用户或IAM组的权限
  • 通过生成预签名URL ,这些URL提供对私有对象的限时访问

直接针对对象级ACL分配权限的方法只能一次针对一个对象进行。存储桶策略通常用于授予对多个对象的访问权限。

如果要做要更新多个对象的ACL,则可以使用--acl参数将对象复制到自身

aws s3 cp --recursive s3://my-bucket/ s3://my-bucket/ --acl private --metadata meta=nothing