AWS SDK for Java의 1.x와 2.x 간의 스트리밍 작업 차이점 - AWS SDK for Java 2.x

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS SDK for Java의 1.x와 2.x 간의 스트리밍 작업 차이점

Amazon S3 getObjectputObject 메서드 등의 스트리밍 작업은 SDK 버전 2.x에서 비차단 I/O를 지원합니다. 따라서 요청 및 응답 모델 객체는 더 이상 InputStream을 파라미터로 사용하지 않습니다. 대신 동기식 요청의 경우 요청 객체가 RequestBody(바이트 스트림)를 허용합니다. 동등한 비동기식 요청은 AsyncRequestBody를 허용합니다.

예 1.x에서의 아마존 S3 putObject 작업
s3client.putObject(BUCKET, KEY, new File(file_path));
예 2.x에서의 Amazon S3 putObject 작업
s3client.putObject(PutObjectRequest.builder() .bucket(BUCKET) .key(KEY) .build(), RequestBody.of(Paths.get("myfile.in")));

스트리밍 응답 객체는 V2에서 동기식 클라이언트의 경우 ResponseTransformer, 비동기식 클라이언트의 경우 AsyncResponseTransformer를 허용합니다.

예 1.x에서의 아마존 S3 getObject 작업
S3Object o = s3.getObject(bucket, key); S3ObjectInputStream s3is = o.getObjectContent(); FileOutputStream fos = new FileOutputStream(new File(key));
예 2.x에서의 Amazon S3 getObject 작업
s3client.getObject(GetObjectRequest.builder().bucket(bucket).key(key).build(), ResponseTransformer.toFile(Paths.get("key")));

SDK for Java 2.x에서 스트리밍 응답 작업에는 응답을 메모리에 로드하고 인 메모리의 일반적인 유형 변환을 간소화하는 AsBytes 메서드가 포함됩니다.