复制同一Amazon S3存储桶中的文件

时间:2013-07-29 18:32:49

标签: python amazon-web-services amazon-s3 boto s3cmd

我正在尝试将存储桶上的整个/contentstore/文件夹复制到带时间戳的版本。基本上/contenstore/会被复制到/contentstore/20130729/

我的整个脚本首先使用s3s3mirror将生产S3存储桶克隆到备份。然后,我想将备份重命名为带时间戳的副本,以便我可以保留相同的多个版本。

我使用s3cmd创建了这个版本,但似乎花了很长时间。两个存储桶之间的s3s3mirror部分在几分钟内完成,可能是因为它是对现有文件夹的刷新。但即使是干净的s3s3mirror(备份时没有现有的内容存储库),也需要大约20分钟。

另一方面,将conentstore复制到备份存储桶上的带时间戳的副本需要一个多小时10分钟。

我做错了什么吗?同一个存储桶上的数据副本是否需要比两个不同存储桶之间的完整克隆更长的时间?

任何想法都会受到赞赏。

P.S:我正在运行的命令是s3cmd --recursive cp backupBucket/contentStore/ backupBucket/20130729/

1 个答案:

答案 0 :(得分:0)

由于您的源路径包含您的目标路径,您实际上可能会多次复制内容 - 首先复制到目标路径,然后在目标路径与源前缀匹配时再次复制。这也可以解释为什么复制到不同的存储桶比在同一个存储桶中更快。

如果您正在使用s3s3mirror,请使用-v选项,您将确切地看到正在复制的内容。它是否显示多次复制的相同密钥?