如何在S3 java中复制/下载文件的所有版本

问题描述

我正在尝试找到一种方法,将文件的所有版本从 S3 下载或复制到不同文件夹中的 S3 存储桶。

解决方法

S3 中对象的每个版本都是(某种程度上)一个单独的对象。他们只是碰巧共享同一个密钥。

不可能复制一个对象及其所有版本。

相反,您需要单独复制每个版本,从最早的版本到最新的版本(以便它们以正确的顺序“堆叠”)。

可以使用 CopyObject() 方法执行复制,指定一个 sourceVersionId。新复制的版本将具有不同的 ID。

Same-Region Replication 和 Cross-Region Replication 可以保留对象版本,但只能复制到不同的bucket(不能复制到不同的目录)。