如何将工件从一个s3存储桶深度复制到另一个存储桶并保留相同密钥存在的版本(我知道设计不好,但这是我必须使用的工具)。
答案 0 :(得分:1)
这是不可能的。
版本化对象的version-id是由系统分配的不透明标识符,并且是只读的。
对于新部署,有一个例外(种类):目标存储桶中的跨区域复制creates identical objects,包括与源存储桶中相同的版本ID,但是...... < / p>
Amazon S3不会追溯复制添加复制配置之前存在的对象。
http://docs.aws.amazon.com/AmazonS3/latest/dev/crr-what-is-isnot-replicated.html
您必须单独迭代密钥(使用列表对象版本),考虑每个对象密钥的版本和删除标记,按时间顺序,复制和/或删除(最旧到最新,覆盖每个旧版本)在您到达当前版本之前的下一个最新版本),并将新存储桶的版本ID与旧存储桶版本ID交叉关联,只要您存储了版本ID,应用程序即可访问。