如何使用 Amazon S3 Java API 使用异步调用执行 getObject

How to use the Amazon S3 Java API to perform getObject using an asynchronous call

我需要从 S3 下载很多文件,所以我用 futures 包装了很多对 s3Client.getObject(request, destination) 的调用,但是没有提到它被阻塞所以我担心我可能 运行进行了所有下载调用但文件尚未真正下载的竞争条件。

是否可以安全地假设此 api 正在阻塞,因为没有提及它是异步的?

澄清一下,阻塞是指在 s3Client.getObject(request, destination) 行之后流程不会继续,直到下载完成。

正在查看 code on Github, it is indeed blocking the call (invoke)。

要使用最新的非阻塞代码(适用于 Java V2 的 AWS SDK),请参阅此 Github 示例。这显示了如何使用 getObject 使用 asynchronous client.

https://github.com/awsdocs/aws-doc-sdk-examples/blob/master/javav2/example_code/s3/src/main/java/com/example/s3/S3AsyncStreamOps.java