繁体   English   中英

Java AWS S3 SDK2如何执行异步批量操作

[英]Java AWS S3 SDK2 how to perform async bulk operations

我想在 S3 中异步执行批量操作。 出于某种原因,我在 AWS 构建的新 SDK2 客户端中找不到这样做的方法。 我目前使用S3AsyncClientputObject方法来上传文件,但我想分批这样做以提高性能。 这同样适用于下载文件。 我已经阅读了关于分段上传的信息,但我不明白这是否是我正在寻找的内容,因为我的文件相对较小而且我不需要分段上传。 我如何执行多文件上传?

您可以使用S3TransferManager ,它是针对 AWS Java SDK v2 调整TransferManager库的实现。 S3TransferManager通过使用多个线程提供批量上传。

请记住,对于 S3,您需要为每个PUT请求付费。 每个文件上传将构成至少一个 PUT 请求。 即使您使用uploadDirectory中的S3TransferManager之类的东西,您仍然需要为每个文件付费。

我不知道 Amazon S3 中的多文件上传模式。

另一种方法是压缩文件并上传一个大文件,您将受益于分段上传。 然后,您让Lambda 函数(由在您的存储桶中上传 zip 文件触发)自动为您解压缩文件。

可在此处找到替代方案的进一步描述和压缩和解压缩策略的代码示例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM