使用Boto3更改S3存储桶中对象的ACL

问题描述:

试图找出使用Boto3设置S3存储桶中对象的ACL的方法。 输入应该是S3存储桶名称,并将所有对象的ACL更改为只读公用使用Boto3更改S3存储桶中对象的ACL

您可以在设置ACL时将copy_object()对象设置为自己。

因此,源将与目标相同,但将ACL设置为期望的值。

boto3 docs

要改变一个对象的ACL,先拿到Object实例,然后更改ACL。下面的例子做两件事:

(boto3 
.session 
.Session(region_name=<region_name>) 
.resource('s3') 
.Object(<bucket_name>, <key>) 
.Acl() 
.put(ACL='public-read')) 

要改变桶的ACL,假设你已经有水桶实例:

bucket.Acl().put(ACL='public-read')