AWS SDK for .NET 사용 - Amazon Simple Storage Service

AWS SDK for .NET 사용

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

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

하위 수준 API

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

상위 수준 API

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

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

참고

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

.NET API 구성

AWS SDK for .NET을 사용하여 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)를 제공합니다.

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

Amazon S3 .NET 코드 예제 실행

이 설명서의 .NET 코드 예제는 AWS SDK for .NET 버전 3.0과 호환됩니다. 코드 예제 설정 및 실행에 대한 자세한 내용은 AWS SDK for .NET 개발자 안내서AWS SDK for .NET 시작하기를 참조하세요.