Arv*_*amy 1 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")
Run Code Online (Sandbox Code Playgroud)
这段代码运行良好并更改了所有者,但是它用 0 个字节重写了对象。这是因为 put 方法创建了一个新对象吗?更改ACL属性的方法是什么?
得到了解决。Put 方法显然创建了对象,这就是为什么重写一个同名的空对象。还有另一种方法 objectacl 更新对象 ACL 属性。下面是我更新的代码:
for key in bucket.objects.all(): s3.ObjectAcl("bucketname",
key.key).put(GrantFullControl="id=XXX")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2885 次 |
| 最近记录: |