0

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

因为没有提到它是异步的,所以假设这个 api 被阻塞是否安全?

s3Client.getObject(request, destination)为了澄清,通过阻塞我的意思是在下载完成之前,流不会在该行之后继续。

在此处输入图像描述

4

2 回答 2

1

查看Github上的代码,确实阻塞了调用(invoke)。

于 2021-09-26T09:00:51.747 回答
1

要使用最新的非阻塞代码(AWS SDK for Java V2),请参阅此 Github 示例。这显示了如何使用异步客户端使用getObject

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

于 2021-09-26T13:59:39.763 回答