

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

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

以下示例说明如何使用 S3 传输管理器：

```
<?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 传输管理器创建默认 Amazon S3 客户端时，客户可以使用传输管理器`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`*<add link>*构造函数。  

```
<?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'
]);
```