

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

# 传输文件和目录
<a name="s3-transfers"></a>

 适用于 PHP 的 Amazon SDK 版本 3 提供了两种在 Amazon S3 之间传输文件和目录的方法。这两种解决方案都能处理大文件分段上传和下载的复杂性，但它们的设计理念、功能集和使用模式各不相同。

## 转账选项概述
<a name="transfer-options-overview"></a>

选择最适合您的应用程序需求的传输方法：

**[S3 传输管理器](s3-transfer-manager.md)（推荐）**  
一个现代化的高级库，为文件传输提供全面的解决方案。它提供了广泛的配置选项、内置的进度跟踪、自定义下载处理程序和强大的错误处理功能。S3 传输管理器使用基于 Promise 的 API，通过高级筛选功能支持单个文件操作和目录传输。

**[转移](s3-transfer.md)**  
一种专门针对批量目录操作的目录传输实现。它为上传和下载整个目录提供了一个更简单的 API，其中包含基本的配置选项。与 S3 传输管理器相比，这种方法的功能较少。

## 主要区别
<a name="key-differences"></a>

下表突出显示了两种传输方法之间的主要区别：


| 功能 | S3 Transfer Manager | Transfer | 
| --- | --- | --- | 
| 单个文件操作 | 是（上传/下载单个文件） | 否（仅限目录操作） | 
| 目录操作 | 是（使用高级筛选） | 是（基本目录传输） | 
| 进度跟踪 | 内置自定义监听器 | 有限（仅限调试输出） | 
| 自定义下载处理程序 | 是 | 否 | 
| 校验和验证 | 自动，带配置 | 手动（add\_content\_md5 选项） | 
| 错误处理 | 全面的故障策略 | 基于承诺的基本处理 | 
| 配置选项 | 广泛（8 个以上的选项） | 基本（6 个选项） | 
| API 设计 | 请求/响应对象 | 简单的构造器参数 | 

## 选择正确的方法
<a name="choosing-the-right-approach"></a>

需要时使用 S3 传输管理器：
+ 个人文件上传或下载操作
+ 高级进度跟踪和监控
+ 用于专门处理的自定义下载处理程序
+ 全面的错误处理和重试政策
+ 对多部分操作的精细控制
+ 具有复杂筛选逻辑的目录操作

需要时使用 “转移”：
+ 简单的 “目录到/从 S3” 传输
+ 最少的配置和设置
+ 与使用 Transfer 的现有代码的兼容性
+ 基本的分段上传功能

**注意**  
对于新应用程序，我们建议使用 S3 传输管理器，因为它为文件传输提供了更全面、更灵活的解决方案。