我想在S3内异步执行批量操作。由于某些原因,我无法在AWS构建的新SDK2客户端中找到这样做的方法。我目前使用s3asynclient的putObject
方法来上传文件,但我想批量执行以提高性能。这同样适用于下载文件。我读过关于多部分上传,但我不明白,如果这是我正在寻找,因为我的文件相对较小,我不需要多部分上传。我如何进行多文件上传?
您可以使用S3TransferManager
,这是TransferManager
库针对AWS Java SDK v2调整的实现。S3TransferManager
通过多线程提供批量上传。
请记住,在S3的情况下,您要为每个PUT
请求付费。每个文件上传将构成至少一个PUT请求。即使您从S3TransferManager
中使用uploadDirectory
之类的内容,您仍然需要在每个文件之后支付费用。
我不知道Amazon S3中有多文件上传模式。
另一种方法是zip文件和上传一个大文件,您将受益于多部分上传。然后让Lambda函数,由在bucket中上传zip文件触发,自动解压给你的文件。选项的进一步描述和zip &解压缩策略可以在这里找到。