

이제 Xamarin용 AWS Mobile SDK가에 포함됩니다 AWS SDK for .NET. 이 안내서에서는 Xamarin용 모바일 SDK의 아카이브된 버전을 참조합니다.

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

# S3 전송 유틸리티 사용
<a name="s3-integration-transferutility"></a>

S3 Transfer Utility를 사용하면 보다 간편하게 S3와 Xamarin 애플리케이션 사이에서 파일을 업로드 및 다운로드할 수 있습니다.

## TransferUtility 초기화
<a name="initialize-the-transferutility"></a>

다음과 같이 S3 클라이언트를 생성하여 AWS 자격 증명 객체를 전달한 다음 S3 클라이언트를 TransferUtility로 전달합니다.

```
var s3Client = new AmazonS3Client(credentials,region);
var transferUtility = new TransferUtility(s3Client);
```

## (선택 사항) TransferUtility 구성
<a name="optional-configure-the-transferutility"></a>

선택적 속성 3개를 구성할 수 있습니다.
+  **ConcurrentServiceRequests** - 파일 업로드/다운로드에 사용될 활성 스레드 또는 동시 비동기 웹 요청 수를 지정합니다. 기본값은 10입니다.
+  **MinSizeBeforePartUpload** - 업로드 파트의 최소 파트 크기(바이트)를 가져오거나 설정합니다. 기본값은 16MB입니다. 최소 파트 크기를 낮출 경우 멀티파트 업로드가 더 많은 수의 더 작은 파트로 분할됩니다. 이 값을 너무 낮게 설정하면 전송 속도에 악영향을 미쳐 지연 시간과 각 파트의 네트워크 통신이 증가합니다.
+  **NumberOfUploadThreads** - 실행 스레드 수를 가져오거나 설정합니다. 이 속성은 파일 업로드 시 사용될 활성 스레드 수를 지정합니다. 기본값은 10개 스레드입니다.

S3 TransferUtility 클라이언트를 구성하려면 다음과 같이 config 객체를 생성하고, 속성을 설정한 다음 객체를 TransferUtility 생성자로 전달합니다.

```
var config = new TransferUtilityConfig();

config.ConcurrentServiceRequests = 10;
config.MinSizeBeforePartUpload=16*1024*1024;
config.NumberOfUploadThreads=10;

var s3Client = new AmazonS3Client(credentials);
var utility = new TransferUtility(s3Client,config);
```

## 파일 다운로드
<a name="download-a-file"></a>

S3에서 파일을 다운로드하려면 Transfer Utility 객체에서 `Download`를 호출하여 다음 파라미터를 전달합니다.
+  `file` - 다운로드할 파일의 문자열 이름
+  `bucketName` - 다운로드할 파일이 저장된 S3 버킷의 문자열 이름
+  `key` - 다운로드할 S3 객체(이 경우에는 파일)의 이름을 표시하는 문자열

```
transferUtility.Download(
  Path.Combine(Environment.SpecialFolder.ApplicationData,"file"),
  "bucketName",
  "key"
);
```

## 파일 업로드
<a name="upload-a-file"></a>

S3로 파일을 업로드하려면 Transfer Utility 객체에서 `Upload`를 호출하여 다음 파라미터를 전달합니다.
+  `file` - 업로드할 파일의 문자열 이름
+  `bucketName` - 파일을 저장할 S3 버킷의 문자열 이름

```
transferUtility.Upload(
  Path.Combine(Environment.SpecialFolder.ApplicationData,"file"),
  "bucketName"
);
```

위 코드는 Environment.SpecialFolder.ApplicationData 디렉터리에 파일이 있다고 가정합니다. 업로드는 처리량을 높이기 위해 대용량 파일에서 자동으로 S3의 멀티파트 업로드 기능을 사용합니다.