Amazon S3将多个文件从一个存储桶复制到另一个存储桶

问题描述 投票:0回答:1

我在源S3存储桶中有大量对象,并且我有选择地希望将对象的子集复制到目标存储桶中。根据doc,这里似乎可以使用TransferManager.copy(from_bucket, from_key, to_bucket, to_key),但是我一次需要做一次。

有人知道其他方法吗,最好以批量方式复制而不是为每个对象调用copy()?

amazon-web-services amazon-s3 aws-java-sdk
1个回答
0
投票

如果您想复制整个目录,则可以使用AWS Command-Line Interface (CLI)

aws s3 cp --recursive s3://source-bucket/folder/* s3://destination-bucket/folder/

但是,由于您希望选择性地复制文件,所以没有简单的方法来指示要复制的文件(除非它们都具有相同的前缀)。

坦率地说,当我需要复制选择性文件时,我实际上是创建Excel文件,其中包含文件名列表。然后,我创建一个像这样的公式:

="aws s3 cp s3://source-bucket/"&A1&" s3://destination-bucket/"

然后只需使用Fill Down复制公式。最后,复制命令并将其粘贴到“终端”窗口中。

如果您问是否有一种方法使用一个API调用以编程方式在存储桶之间复制倍数,则答案为否,这不可能。每个API调用只会复制一个对象。但是,您可以并行发出多个复制命令,以加快处理速度。

© www.soinside.com 2019 - 2024. All rights reserved.