

# 使用批量操作批量执行对象操作
<a name="batch-ops"></a>

您可以使用 S3 批量操作对 Amazon S3 对象执行大规模批量操作。S3 批量操作可以对您指定的 Amazon S3 对象列表执行单个操作。单个任务可对数十亿个包含 EB 级数据的对象执行指定操作。Amazon S3 跟踪进度、发送通知并存储所有操作的详细完成报告，从而提供完全托管、可审核的无服务器体验。可以通过 Amazon S3 控制台、AWS Command Line Interface（AWS CLI）、AWS SDK 或 Amazon S3 REST API 使用 S3 批量操作。

使用 S3 批量操作来复制对象、更新对象的服务器端加密，并设置对象标签或访问控制列表（ACL）。您还可以从 S3 Glacier Flexible Retrieval 启动对象还原，或者调用 AWS Lambda 函数以使用您的对象执行自定义操作。您可以对自定义的对象列表执行这些操作，也可以使用 Amazon S3 清单报告来轻松生成对象列表。Amazon S3 批量操作使用的 Amazon S3 API 操作与您已在 Amazon S3 中使用的操作相同。

**注意**  
有关将 Amazon S3 Express One Zone 存储类与目录存储桶配合使用的更多信息，请参阅 [S3 Express One Zone](directory-bucket-high-performance.md#s3-express-one-zone) 和[使用目录存储桶](directory-buckets-overview.md)。有关将批量操作与 S3 Express One Zone 和目录存储桶配合使用的更多信息，请参阅[对目录存储桶使用批量操作](directory-buckets-objects-Batch-Ops.md)。

## S3 批量操作基础知识
<a name="batch-ops-basics"></a>

您可以使用 S3 批量操作对 Amazon S3 对象执行大规模批量操作。S3 批量操作可以对您指定的 Amazon S3 对象列表运行单个操作。

### 术语
<a name="batch-ops-terminology"></a>

本节使用的术语*清单*、*作业*、*操作*和*任务*定义如下：

**清单**  
清单是一种 Amazon S3 对象，其中包含您希望 Amazon S3 采取操作的对象键。如果要创建批量操作任务，必须提供清单。用户生成的清单必须包括存储桶名称、对象键以及（可选）每个对象的对象版本。如果您提供用户生成的清单，清单必须采用 Amazon S3 清单报告或 CSV 文件的形式。  
还可以让 Amazon S3 根据您在创建任务时指定的对象筛选条件自动生成清单。此选项适用于您使用 Amazon S3 控制台创建的批量操作作业，也适用于您使用 AWS Command Line Interface（AWS CLI）、AWS SDK 或 Amazon S3 REST API 创建的任何作业类型。

**任务**  
任务是 S3 批量操作的基本工作单位。任务包含对清单中所列对象运行指定操作所需的全部信息。在您提供此信息并请求任务开始后，任务将对清单中的每个对象执行操作。

**操作**  
操作是您希望批量操作任务运行的 API [操作](https://docs.aws.amazon.com/AmazonS3/latest/API/API_Operations.html)的类型，例如复制对象。对于清单中指定的所有对象，每个任务执行单一类型的操作。

**任务**  
任务是任务的执行单元。任务表示为了对单个对象执行任务的操作而对 Amazon S3 或 AWS Lambda API 操作进行的单个调用。在任务的生命周期内，S3 批量操作将为清单中指定的每个对象创建一个任务。

### S3 批量操作任务的工作原理
<a name="batch-ops-basics-how-it-works"></a>

任务是 S3 批量操作的基本工作单位。任务包含要对对象列表运行指定操作所需的全部信息。要创建任务，您需要向 S3 批量操作提供对象列表并指定要对这些对象执行的操作。有关 S3 批量操作支持的操作的信息，请参阅 [S3 分批操作支持的操作](batch-ops-operations.md)。

批量任务将对其*清单* 中包含的每个对象执行指定的操作。清单列出了您希望批处理任务进行处理的对象并将其作为对象存储在存储桶中。您可以使用逗号分隔值（CSV）格式的 [使用 S3 清单对数据进行编目和分析](storage-inventory.md) 报告作为清单，这样便于轻松创建位于存储桶中的大型对象列表。您还可以指定采用简单的 CSV 格式的清单，这样您便可对单个存储桶中包含的对象的自定义列表执行批量操作。

在您创建任务后，Amazon S3 将处理清单中的对象列表并对每个对象运行指定的操作。在任务运行时，您能够通过编程方式或通过 Amazon S3 控制台监控其进度。您还可以对任务进行配置，以便在其完成时生成完成报告。完成报告会描述任务已执行的每个任务的结果。有关监控任务的更多信息，请参阅 [管理 S3 分批操作任务](batch-ops-managing-jobs.md)。

S3 批量操作会产生成本。您需要为创建批量操作作业（包括在完成之前取消的作业）付费。有关更多信息，请参阅 [Amazon S3 定价](https://aws.amazon.com/s3/pricing/)。

默认情况下，S3 批量操作作业可以为所有操作处理多达 40 亿个对象。尤其是，复制、对象标记、对象锁定、调用 AWS Lambda 函数和批量复制作业可以支持多达 200 亿个对象。每个 AWS 账户最多只能有 6 个活动的批量复制作业。要开始创建批量操作任务，请参阅[创建 S3 批量操作任务](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-create-job.html)。

## S3 批量操作教程
<a name="batch-ops-basics-tutorial"></a>

以下教程提供了一些批量操作任务的完整端到端过程。
+ [教程：使用 S3 批量操作对视频进行批量转码](tutorial-s3-batchops-lambda-mediaconvert-video.md)