

適用於 Xamarin 的 AWS Mobile SDK 現在已包含在 中 適用於 .NET 的 AWS SDK。本指南參考 Mobile SDK for Xamarin 的封存版本。

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 使用 S3 Transfer 公用程式
<a name="s3-integration-transferutility"></a>

S3 Transfer Utility 可讓您更輕鬆地從 Xamarin 應用程式上傳和下載檔案至 S3。

## 初始化 TransferUtility
<a name="initialize-the-transferutility"></a>

建立 S3 用戶端，將 AWS 登入資料物件傳遞給它，然後將 S3 用戶端傳遞給傳輸公用程式，如下所示：

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

## （選用） 設定 TransferUtility
<a name="optional-configure-the-transferutility"></a>

您可以設定三個選用屬性：
+  **ConcurrentServiceRequests** - 決定將使用多少個作用中執行緒或非同步 Web 請求數目來上傳/下載檔案。預設值為 10。
+  **MinSizeBeforePartUpload** - 取得或以位元組為單位設定上傳組件的最小組件大小。預設為 16 MB。減少最小部分大小會導致分段上傳分割成更多較小的部分。將此值設為太低會對傳輸速度產生負面影響，導致每個部分的額外延遲和網路通訊。
+  **NumberOfUploadThreads** - 取得或設定執行執行緒的數量。此屬性會決定將用於上傳檔案的作用中執行緒數量。預設值為 10 個執行緒。

若要設定 S3 TransferUtility 用戶端，請建立組態物件、設定屬性，並將物件傳遞至 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 的分段上傳功能，以增強輸送量。