Answers:
您可以将“ s3cmd ”实用程序与“ sync”选项一起使用,尽管我偶然发现了您的问题,因为我试图弄清楚这种同步机制是否破坏了我的重复性备份。
我遇到了同样的问题,因此我整理了一个专门设计用来将一个S3存储桶镜像到另一个S3存储桶的程序。我称它为s3s3mirror。
我确实首先尝试了“ s3cmd sync”方法,但是我有一个存储有成千上万个对象的存储桶,而“ s3cmd sync”只是坐在那儿,什么也不做,只是消耗越来越多的内存,直到系统死掉。我设计s3s3mirror可以立即开始使用100个并发线程(可配置),并适度使用CPU和内存。如果我自己也这么说,那简直太快了。
我已经在Apache许可下在github上提供了此功能。如果您决定尝试一下,请告诉我您的想法以及是否有任何可以改进的地方。
这是链接:https : //github.com/cobbzilla/s3s3mirror
谢谢!
亚马逊现在有一个受支持的工具aws cli。
它可以在本地和远程之间或两个s3位置之间的任何一个方向上进行镜像。
不幸的是,它没有对非S3位置(如机架空间)的任何直接支持,但是我认为这对于某些发现此问题的人将是一个有用的答案。像我一样,在我找到它之前。
特别是,
aws s3 sync s3://some/s3/path /some/local/path
您可以尝试使用s3fs安装带有保险丝的桶。完成后,您可以将rmount从安装点同步到本地磁盘。
您可以设置Minio服务器,开源和S3兼容API。您可以在EC2或任何云提供商上将其设置为备用服务器,并使用Minio client mc mirror
命令定期获取S3的镜像。您可以通过编写简单的cron脚本来自动化。
希望能帮助到你。免责声明:我为Minio工作
对于存储桶的在线同步,您可以使用跨区域复制。这样,对原始存储桶的所有更新将自动同步到另一个区域中的S3存储桶:https : //docs.aws.amazon.com/AmazonS3/latest/dev/crr.html
请记住,它需要为存储桶启用版本控制,因此,如果您要对存储桶中的对象进行更新/删除,那么您将需要启用生命周期策略以删除旧对象。