如何使用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())