我正在使用S3复制来跨亚马逊网络服务账户复制存储桶(两者位于同一区域)。
当我最初设置复制时,我没有注意到为了允许访问目标存储桶中的对象,我必须选中“更改所有权”框(原始存储桶使用AES-256加密)。
我意识到这一点后,我已经有几个to复制到另一个帐户。
有没有办法更新目标存储桶中现有的复制对象以允许访问,这样我就不需要重新复制它们了?
仅供参考-要执行我使用的跨区域复制,请使用AWS知识中心页面中所示的复制到自身的方法(请参阅“使用跨区域复制或相同区域复制”部分)-
https://aws.amazon.com/premiumsupport/knowledge-center/s3-large-transfer-between-buckets/
如果有人知道更快或更好的方法,我洗耳恭听!
发布于 2020-09-25 06:31:07
您可以遍历所有对象并更新ACL。这需要使用来自对象的原始“所有者”帐户的凭据来完成。
aws s3api put-object-acl --bucket XX --key XX --acl bucket-owner-full-control我刚刚做了一个实验:
Account
最简单的方法是编写一个小脚本(例如在Python语言中),获取存储桶的列表并使用原始帐户的凭据发出put_object_acl()命令。或者,如果您对编写该命令没有信心,只需创建一个包含文件名和生成上述命令的公式的Excel电子表格即可。
最好是从与存储桶相同的区域中的亚马逊EC2实例运行命令,因为通信将比从您自己的计算机执行更快。
https://stackoverflow.com/questions/64051867
复制相似问题