AWS boto3 grantfullcontrol语法

时间:2017-05-17 16:25:31

标签: python amazon-web-services boto3

我正在使用Python boto3将存储桶中所有对象的完全控制权授予另一个帐户。这是我的代码片段:

s3 = boto3.resource('s3') 
bucket = s3.Bucket("bucketname")
for key in bucket.objects.all():
    key.put(GrantFullControl="id=XXXX")

此代码运行正常并更改所有者但是它使用0字节重写对象。这是因为put方法创建了一个新对象吗?更改ACL属性的方法是什么?

1 个答案:

答案 0 :(得分:4)

得到了解决。 Put方法显然创建了对象,这就是重写具有相同名称的空对象的原因。还有另一种方法objectacl,它更新对象的ACL属性。以下是我更新的代码:

for key in bucket.objects.all(): s3.ObjectAcl("bucketname", 
    key.key).put(GrantFullControl="id=XXX")