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

.NET용 AWS SDK 사용

.NET용 AWS SDK에서는 Amazon S3 버킷 및 객체 작업용 API를 제공합니다. 객체 작업의 경우 단일 작업에서 객체를 업로드하기 위해 API를 제공하는 것에 추가로, SDK에서는 대용량 객체를 여러 부분으로 나누어 업로드하기 위해 이 API를 제공합니다(멀티파트 업로드 API를 사용한 객체 업로드 참조).

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

하위 수준 API

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

상위 수준 API

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

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

참고

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

.NET API 구성

.NET용 AWS SDK을 사용하여 Amazon S3 애플리케이션을 작성할 경우 AWSSDK.dll을 사용합니다. 이 조합에서의 다음 네임스페이스는 멀티파트 업로드 API를 제공합니다.

  • Amazon.S3.Transfer - 상위 수준 API를 제공하여 파트에 있는 데이터를 업로드합니다.

    데이터를 업로드하기 위한 파일, 디렉터리 또는 스트림을 지정할 수 있는 TransferUtility 클래스가 포함되어 있습니다. 또한 동시 스레드 수, 파트 크기, 객체 메타데이터, 스토리지 클래스(STANDARD, REDUCED_REDUNDANCY) 및 객체 ACL(액세스 제어 목록) 등의 고급 설정을 구성하기 위한 TransferUtilityUploadRequestTransferUtilityUploadDirectoryRequest 클래스도 포함되어 있습니다.

  • Amazon.S3 - 하위 수준 API에 대한 구현을 제공합니다.

    Amazon S3 REST 멀티파트 업로드 API(멀티파트 업로드를 위해 REST API 사용 참조)에 적합한 방법을 제공합니다.

  • Amazon.S3.Model - 하위 수준 API 클래스를 제공하여 요청을 생성하고 응답을 처리합니다. 예를 들어, 멀티파트 업로드를 초기화할 때 사용 가능한 InitiateMultipartUploadRequestInitiateMultipartUploadResponse 클래스와 파트를 업로드할 때 사용 가능한 UploadPartRequestUploadPartResponse 클래스를 제공합니다.

  • Amazon.S3.Encryption - AmazonS3EncryptionClient를 제공합니다.

  • Amazon.S3.Util - 다양한 유틸리티 클래스를 제공합니다(예: AmazonS3UtilBucketRegionDetector).

.NET용 AWS SDK API에 대한 자세한 내용은 .NET용 AWS SDK 버전 3 API 참조를 참조하십시오.

Amazon S3 .NET 코드 예시 실행

이 가이드의 .NET 코드 샘플은 .NET용 AWS SDK 버전 3.0과 호환됩니다. 코드 예제 설정 및 실행에 대한 자세한 내용은 AWS SDK for .NET Developer Guide.NET용 AWS SDK 시작하기를 참조하십시오.