gpt4 book ai didi

java - 如何将多个S3对象异步获取到内存中

转载 作者:行者123 更新时间:2023-12-01 16:25:32 24 4
gpt4 key购买 nike

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

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

s3Object = s3Client.getObject(bucketName, String key)
S3ObjectInputStream stream = s3Object.getObjectContent();
byte[] byteArray IOUtils.toByteArray(s3InputStream);
stream.close()

对于目录下载中的对象,AWS提供了TransferManager,但问题是我不希望它写入文件/磁盘。我希望所有对象都返回到内存中。

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

最佳答案

我自己还没有在 Java 中完成此操作,但理论上您应该能够通过使用 CompletableFuture 来实现这一点。

此 AWS 文档中的第二个示例展示了如何从 S3 异步获取一个对象:Asynchronous Programming 。要将对象作为字节数组而不是文件获取,您需要替换 AsyncResponseTransformer.toFileAsyncResponseTransformer.toBytes .

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

关于java - 如何将多个S3对象异步获取到内存中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62157090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com