首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AWS CLI S3同步存储桶和保留权限

AWS CLI S3同步存储桶和保留权限
EN

Stack Overflow用户
提问于 2019-03-24 22:01:55
回答 2查看 3.1K关注 0票数 3

我需要在我的亚马逊账户中创建一个存储桶的镜像副本。

主要问题是一些对象具有“私有”权限,而另一部分对象具有“公共读取”权限。

当我运行时:

aws s3 sync s3://bucket-saas s3://bucket-saas-bkp --acl public-read

所有对象都成为公共对象,而当我运行

aws s3 sync s3://bucket-saas s3://bucket-saas-bkp --acl private将所有对象变为私有。

有没有办法同步文件并保留它们的权限?

EN

回答 2

Stack Overflow用户

发布于 2019-06-30 00:31:19

我也遇到过同样的问题--我有一个装有大量对象的桶,而其中一些对象应该是可以公开访问的。我不得不将整个存储桶复制到另一个存储桶中,同时保留ACL,当然,手动设置ACL将花费我极大的时间。

我用python编写了这个简单的脚本,它将对象从一个存储桶复制到另一个存储桶,并为其设置ACL。

请随时查看:https://github.com/terminator9999/aws-s3-bucket-copy/

票数 1
EN

Stack Overflow用户

发布于 2019-03-24 22:26:12

--acl是一种预定义的授权。您可以在AWS Documentation for Canned ACLs中查看可用的封装ACL。遗憾的是,当您通过CLI在存储桶之间复制对象时,看起来没有保留现有权限的选项。根据存储桶名称,我假设您正在尝试将一个存储桶备份到另一个存储桶。亚马逊确实提供了一个叫做Cross Region Replication的功能,我想这正是你想要的。CRR非常适合这一点,因为它将跨每个对象立即复制到备份存储桶中,同时保留与该对象关联的大量数据。

CRR documentation

目标存储桶中的对象副本是源存储桶中对象的精确副本。它们具有相同的密钥名称和相同的元数据-例如,创建时间、所有者、用户定义的元数据、版本ID、访问控制列表(ACL)和存储类。您还可以为对象复制副本显式指定不同的存储类。无论谁拥有源存储桶或源对象,您都可以选择将副本所有权更改为拥有目标存储桶的AWS帐户。

如果这不是你想要做的,你只是想要一个脚本来在存储桶之间同步对象并保留权限,那么你可能不得不编写一个脚本,在将每个对象复制到新的存储桶后查找它,并将现有的权限分配给它。记住,你必须为这些AWS操作付费,所以我建议你做你的研究,这样你就不会在你的S3账单上得到任何令人讨厌的惊喜。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55324581

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档