首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将多个S3对象异步地放入内存

如何将多个S3对象异步地放入内存
EN

Stack Overflow用户
提问于 2020-06-03 00:47:45
回答 1查看 575关注 0票数 0

我正在尝试将多个S3对象异步地拉到内存中。

对于单个对象,我可以使用AmazonS3

代码语言:javascript
复制
s3Object = s3Client.getObject(bucketName, String key)
S3ObjectInputStream stream = s3Object.getObjectContent();
byte[] byteArray  IOUtils.toByteArray(s3InputStream);
stream.close()

对于目录下载中的对象,亚马逊网络服务提供了TransferManager,但问题是我不希望它写入文件/磁盘。我希望所有对象都在内存中返回给我。

如何实现一次从S3异步拉取多个对象并将其返回到内存中?

EN

回答 1

Stack Overflow用户

发布于 2020-06-03 02:30:02

我自己还没有用Java语言做到这一点,但理论上你应该可以通过使用CompletableFuture来实现这一点。

本文档中的第二个示例展示了如何从S3:Asynchronous Programming异步获取一个对象。要获得字节数组形式的对象,而不是文件形式,需要用AsyncResponseTransformer.toBytes替换AsyncResponseTransformer.toFile

然后,您需要对要加载的每个文件执行此操作,然后使用CompletableFuture.allOf()等待所有CompletableFuture完成文件加载。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62157090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档