기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS SDK for Java의 1.x와 2.x 간의 스트리밍 작업 차이점
Amazon S3 getObject 및 putObject 메서드 등의 스트리밍 작업은 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 메서드가 포함됩니다.