我们使用S3在我们的webapp中存储了数百万个条目,现在我们把整个东西移到EC2,EU服务器,我们也想把这个S3数据移到EU。 但我们使用的是在美国的桶,似乎没有工具将整个桶内容移动到不同的桶。
以后在切换到EU桶时如何同步数据也会出现问题,迁移过程中会同时创build数据。
新的官方AWS CLI本身支持s3cmd
大部分function。
http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html
aws s3 sync s3://oldbucket s3://newbucket --source-region us-west-1 --region us-west-2
我想,你可以运行:
s3cmd --recursive cp s3://oldbucket/ s3://newbucket
它应该直接复制它。
我不知道一个打包的解决scheme来做到这一点,但它本质上只是一个桶LIST,然后将每个对象从US桶中复制到EU桶中。 PUT-copy API支持“if-modified-since”和“if-none-match”,所以你可以反复运行而不用重复: http : //docs.amazonwebservices.com/AmazonS3/2006-03-01/ API / index.html的?RESTObjectCOPY.html
对于实时迁移,我会build议采用以下方法:
在迁移期间,您可能希望在您的EU存储桶中使用S3 Reduced Redundancy Storage,以获得更便宜的数据速率和更快的响应时间,因为数据只是美国数据的副本。
您也可以考虑设置跨地域复制,这可以让您复制和保持地区之间的数据同步https://aws.amazon.com/blogs/aws/new-cross-region-replication-for-amazon- S3 /
我已经在S3上做了相当多的工作,从来没有遇到过这样的工具。 但是,使用几个s3cmd-sync同步脚本来保持两个桶彼此同步并不难。