【问题标题】:AWS boto3 grantfullcontrol syntaxAWS boto3 grantfullcontrol 语法
【发布时间】: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


【解决方案1】:

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

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

【讨论】:

  • 请注意这里的 XXX 是规范的用户 ID。
猜你喜欢
  • 2015-09-05
  • 1970-01-01
  • 2022-11-15
  • 2016-10-17
  • 1970-01-01
  • 1970-01-01
  • 2017-08-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多