【发布时间】:2017-05-18 02:06:32
【问题描述】:
我正在使用 Python boto3 将存储桶中的所有对象的完全控制权授予另一个帐户。这是我的sn-p:
s3 = boto3.resource('s3')
bucket = s3.Bucket("bucketname")
for key in bucket.objects.all():
key.put(GrantFullControl="id=XXXX")
此代码运行良好并更改了所有者,但是它用 0 字节重写了对象。这是因为 put 方法创建了一个新对象吗?修改ACL属性的方法是什么?
【问题讨论】:
-
解决了。 Put 方法创建对象,这就是为什么要重写一个具有相同名称的空对象。还有另一种方法 objectacl 可以更新对象 ACL 属性。下面是我更新后的代码: for key in bucket.objects.all(): s3.ObjectAcl("bucketname", key.key).put(GrantFullControl="id=XXX")
标签: python amazon-web-services boto3