메뉴
Amazon Simple Storage Service
개발자 안내서 (API 버전 2006-03-01)

AWS SDK for Java 사용

AWS SDK for Java에서는 Amazon S3 버킷 및 객체 작업용 API를 제공합니다. 객체 작업의 경우 단일 작업에서 객체를 업로드하기 위해 API를 제공하는 것에 추가로, SDK에서는 대용량 객체를 여러 부분으로 나누어 업로드하기 위해 API를 제공합니다. 자세한 내용은 멀티파트 업로드 API를 사용한 객체 업로드 단원을 참조하십시오.

AWS SDK for Java는 상위 수준 또는 하위 수준의 API를 사용하는 옵션을 제공합니다.

하위 수준 API

하위 수준 API는 버킷과 객체에 적용되는 작업의 생성, 업데이트, 삭제 등의 기본 Amazon S3 REST 작업에 적합합니다. 하위 수준 멀티파트 업로드 API를 사용하여 큰 객체를 업로드하면 더 많은 제어가 가능합니다. 예를 들어, 멀티파트 업로드를 일시 중지했다 다시 시작해야 하거나, 업로드 중에 부분 크기를 변경해야 하거나, 데이터 크기를 모르고 업로드를 시작할 경우 하위 수준 API를 사용할 수 있습니다. 이러한 요구 사항이 없는 경우 상위 수준 API를 사용하여 객체를 업로드합니다.

상위 수준 API

객체를 업로드할 경우, SDK에서는 TransferManager 클래스를 제공함으로써 더 높은 수준의 추상화를 제공합니다. 상위 수준 API는 더 간단한 API로, 단 몇 줄의 코드로 파일을 업로드하고 Amazon S3에 스트리밍할 수 있습니다. 앞서 하위 수준 API 단원에 설명된 대로 업로드를 제어해야 하는 경우가 아니라면 이 API를 사용하여 데이터를 업로드해야 합니다.

데이터 크기가 더 작은 경우 TransferManager API는 단일 작업으로 데이터를 업로드합니다. 그러나 데이터 크기가 특정 임계값에 도달하면 TransferManager는 멀티파트 업로드 API 사용으로 전환합니다. 가능한 경우 TransferManager에서는 여러 스레드를 사용하여 여러 부분을 동시에 업로드합니다. 한 부분의 업로드가 실패한 경우, API에서는 실패한 부분의 업로드를 최대 세 번까지 다시 시도합니다. 그러나 이는 TransferManagerConfiguration 클래스를 사용하여 구성 가능한 옵션입니다.

참고

데이터 소스로 스트림을 사용하는 경우, TransferManager 클래스는 동시 업로드를 수행하지 않습니다.

Java API 구성

AWS SDK for Java의 다음 패키지에서는 이러한 API를 제공합니다.

  • com.amazonaws.services.s3 - Amazon S3 클라이언트를 생성하고 버킷 및 객체 사용에 필요한 API를 제공합니다. 예를 들어 이를 통해 버킷 생성, 객체 업로드, 객체 가져오기, 객체 삭제, 키 나열을 수행할 수 있습니다.

  • com.amazonaws.services.s3.transfer - 상위 수준 API 데이터 작업을 제공합니다.

    상위 수준 API는 Amazon S3로/에서 객체 전송을 간소화하기 위해 설계되었습니다. 여기에는 사용 방법, 쿼리 및 전송 조작을 위한 비동기식 메서드를 제공하는 TransferManager 클래스가 포함됩니다. 또한 파트 업로드를 위한 최소 부분 크기와 멀티파트 업로드를 사용하는 경우의 임계값 바이트를 구성하는 데 사용할 수 있는 TransferManagerConfiguration 클래스도 포함되어 있습니다.

  • com.amazonaws.services.s3.model - 하위 수준 API 클래스를 제공하여 요청을 생성하고 응답을 처리합니다. 예를 들어 객체 가져오기 요청을 형성하는 GetObjectRequest 클래스, 키 목록 작성 요청을 형성하는 ListObjectsRequest 클래스, 멀티파트 업로드를 생성하는 InitiateMultipartUploadRequest 클래스가 포함되어 있습니다.

AWS SDK for Java API에 대한 자세한 내용은 AWS SDK for Java API Reference를 참조하십시오.

Amazon S3 Java 코드 예제 테스트

이 가이드의 Java 예제는 AWS SDK for Java 버전 1.11.321과 호환됩니다. 코드 샘플 설정 및 실행에 대한 지침은 AWS SDK for Java 개발자 가이드의 AWS SDK for Java 시작하기를 참조하십시오.