

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

# 基本使用
<a name="basic-usage"></a>

下列範例示範如何使用 S3 Transfer Manager：

```
<?php

use Aws\S3\S3Client;
use Aws\S3\S3Transfer\Models\UploadRequest;
use Aws\S3\S3Transfer\S3TransferManager;

require __DIR__ . '/../vendor/autoload.php';


// Create an S3 client.
$s3Client = new S3Client([
    'version' => 'latest',
    'region'  => 'us-west-2',
]);

// Create a transfer manager with default configuration.
$transferManager = new S3TransferManager($s3Client);

// Alternative: Create transfer manager with null client. S3 Transfer Manager uses a default S3 client.
$transferManager = new S3TransferManager(null, [
    'default_region' => 'us-west-2'
]);

// Example: Upload a file.
$uploadPromise = $transferManager->upload(
    new UploadRequest(
        '/path/to/local/file.txt',
        [
            'Bucket' => 'amzn-s3-demo-bucket',
            'Key'    => 'path/to/s3/file.txt',
        ]
    )
);

// Wait for the upload to complete.
$result = $uploadPromise->wait();

echo "Upload complete!\n";
```

**重要**  
使用 S3 Transfer Manager 建立預設 Amazon S3 用戶端時，客戶可以使用 Transfer Manager `config`選項中的 `default_region` 參數來傳遞用戶端的預設區域，否則 Amazon S3 用戶端會嘗試使用預設行為來解析區域，如果區域未解析，則會擲回例外狀況。

## 建立傳輸管理員
<a name="creating-transfer-manager"></a>

您可以透過兩種方式建立傳輸管理員：

使用現有的 S3 用戶端  
將現有[https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.S3.S3Client.html](https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.S3.S3Client.html)執行個體傳遞至 `S3TransferManager` *<新增連結>* 建構函式。  

```
<?php

use Aws\S3\S3Client;
use Aws\S3\S3Transfer\S3TransferManager;

require __DIR__ . '/../vendor/autoload.php';

// Create an S3 client.
$s3Client = new S3Client([
    'version' => 'latest',
    'region'  => 'us-west-2',
]);

$transferManager = new S3TransferManager($s3Client);
```

使用預設 S3 用戶端建立  
傳遞 `null`做為用戶端，並指定組態選項。  

```
<?php

use Aws\S3\S3Transfer\S3TransferManager;

require __DIR__ . '/../vendor/autoload.php';

$transferManager = new S3TransferManager(null, [
    'default_region' => 'us-west-2'
]);
```