从 AWS Java SDK 2.0 中的 GetObjectResponse 获取 S3Object

the*_*ler 7 java aws-java-sdk-2.x

在 AWS Java SDK 1.x 中,我可以S3Object从这样的一个中得到一个S3Client

S3Object obj = mS3Client.getObject(pBucket, pKey);
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用 AWS Java SDK 2.0(并以 结束S3Object)复制该功能,但我能得到的最接近的是GetObjectResponse,而且我找不到任何简单的方法调用来将响应转换为S3Object.

GetObjectResponse response = mS3Client.getObject(
        GetObjectRequest.builder()
                .bucket(pBucket)
                .key(pKey)
                .build())
        .response();
Run Code Online (Sandbox Code Playgroud)

我怎样才能S3Object从 2.0 中获得一个S3Client,或者从GetObjectResponse.

Swa*_*n S 5

使用响应输入流。希望下面的代码可以解决您的问题。

GetObjectRequest request = GetObjectRequest.builder()
    .bucket("BucketName")
    .key("key")
    .build();
ResponseInputStream<GetObjectResponse> s3objectResponse = s3Client
    .getObject(request);
BufferedReader reader = new BufferedReader(new InputStreamReader(s3objectResponse));

String line;            
while ((line = reader.readLine()) != null) {            
    System.out.println(line);
}
Run Code Online (Sandbox Code Playgroud)

  • 有关从“InputStream”转换为“String”的多种不同方法,请参阅 /sf/ask/21659711/ (2认同)