如何使用aws s3 sdk复制多个文件

How to copy multiple files using aws s3 sdk

我想使用 aws s3 sdk java 将多个文件从一个文件夹复制到另一个文件夹。我可以看到提供的方法 copyObject() 是针对单个文件的。 以下是文档中提供的代码。

 CopyObjectRequest copyObjectRequest = new CopyObjectRequest(getBucketName(),
    "srcFolderName" + "/" + key, getBucketName(), "targetFolderName" + "/" + key);
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentDisposition("attachment");
copyObjectRequest.setNewObjectMetadata(metadata);
getS3Client().copyObject(copyObjectRequest);

如何给多个文件路径?

例如:来源

  1. A/srcFolderName/123/file.txt
  2. A/srcFolderName/456/file.txt
  3. A/srcFolderName/789/file.txt
  4. A/srcFolderName/112/file.txt
  5. A/srcFolderName/101/file.txt

需要复制的文件是1,2,5。

复制后

  1. A/targetFolderName/123/file.txt
  2. A/targetFolderName/456/file.txt
  3. A/targetFolderName/101/file.txt

您不能通过一次 API 调用复制多个对象。

CopyObjectAPI调用只会复制一个对象

但是,您可以通过 多线程 发出多个 API 调用,以便并行完成操作。