Amazon S3 Java SDK:从S3到S3的递归复制

时间:2016-08-30 21:47:38

标签: java amazon-s3 copy

使用Java SDK for AWS S3,我需要将一个s3前缀下的每个对象复制到另一个s3前缀,以便$prefix_1中的文件:

$prefix_1/key_remainder_1
$prefix_1/key_remainder_2
$prefix_1/key_remainder_3

被复制到$prefix_2,因此看起来像:

$prefix_2/key_remainder_1
$prefix_2/key_remainder_2
$prefix_2/key_remainder_3

使用aws cli,我可以使用aws s3 sync $bucket/$prefix1 $bucket/$prefix2来完成此操作。一目了然,sync本质上是一个LIST,后面跟着一堆生成的COPY。但是,java sdk似乎不支持将文件从一个前缀复制到另一个前缀的一次性方法(即单个命令/方法,如sync)。

无论出于何种原因,TransferManager可以在s3和磁盘之间进行批量复制,但不能在s3和s3之间进行批量复制。

显然,我要么

  1. 明确LIST前缀下的所有对象,然后运行一堆单独的COPY s
  2. 使用TransferManager首先从源前缀下载所有内容到磁盘,然后将本地目录上传到目标前缀。
  3. 我错过了什么吗?有没有办法使用java SDK获得我想要的东西?

0 个答案:

没有答案