使用S3AsyncClient从AWS Java SDK 2中的GetObjectResponse获取S3Object



如何使用S3AsyncClient为getObject请求创建普通InputStream

AWS JDK 2.0的S3AsyncClient似乎没有像S3Client同步客户端那样返回ResponseInputStream<GetObjectResponse>的函数。

唯一可用的返回类型是CompletableFuture<GetObjectResponse>,但返回该类型的方法假定数据将转到本地路径。

S3AsyncClient s3AsyncClient = ...;

CompletableFuture<GetObjectResponse> response = s3AsyncClient.getObject(
GetObjectRequest.builder()
.bucket(bucket)
.key(key)
.build(),
path));    

有一个类似的stackoverflow项目,但问题和答案都使用同步S3Client。

提前感谢您的考虑和回复。

下面的代码将为您提供InputStream。

ResponseInputStream responseInputStream = s3AsyncClient.getObject(GetObjectRequest.builder()
.bucket(bucket)
.key(key)
.build(),
AsyncResponseTransformer.toBlockingInputStream())

最新更新