借助 S3 批量操作,大规模管理数百亿个对象
S3 分批操作是 Simple Storage Service (Amazon S3) 数据管理功能,可让您在 Simple Storage Service (Amazon S3) 管理控制台中单击几下或者发出单个 API 请求即可大规模管理数十亿个对象。利用这一功能,您可以更改对象元数据和属性,或执行其他存储管理任务,例如在存储桶之间复制对象、替换对象标记集、修改访问控制以及从 S3 Glacier 还原归档对象 – 而不用花数月时间开发自定义应用程序来执行这些任务。
S3 批量操作
S3 批量操作是一种托管解决方案,用于执行存储操作,如大规模复制和标记对象,无论是一次性任务还是重复的批量工作负载。S3 批量操作可以通过发出单个请求对数十亿个对象和 PB 级数据执行操作。若要在 S3 批量操作中执行工作,请创建作业。作业包括对象列表、要执行的操作以及为该操作类型指定的参数集。您可以在 S3 批量操作中一次创建和运行多个作业,也可以根据需要使用作业优先级来定义每个作业的优先顺序,并确保最重要的工作最先进行。S3 批量操作能够管理重试,跟踪进度,发送完成通知,生成报告,并针对所做的所有更改和执行的任务,将事件传送到 AWS CloudTrail。
S3 批量操作补充了您现在可能正在操作的任何事件驱动架构。对于新对象,使用 S3 事件和 Lambda 函数非常适合转换文件类型,创建缩略图,执行数据扫描和执行其他操作。例如,当图像首次上传到 S3 时,客户使用 S3 事件和Lambda 函数创建较小尺寸、低分辨率的原始照片版本。S3 批量操作通过提供一种简单的机制来对现有对象执行相同的操作,从而对这些现有的事件驱动的工作流程进行了补充。
工作原理:S3 批量操作

若要在 S3 批量操作中执行工作,请创建作业。作业包括对象列表、要执行的操作以及为该操作类型指定的参数集。您可以在 S3 批量操作中一次创建和运行多个作业,也可以根据需要使用作业优先级来定义每个作业的优先顺序,并确保最重要的工作最先进行。S3 批量操作能够管理重试,跟踪进度,发送完成通知,生成报告,并针对所做的所有更改和执行的任务,将事件传送到 AWS CloudTrail。
S3 批量操作教程
创建作业
管理和跟踪作业
设置权限
客户
Teespring 成立于 2011 年,使用户能够在线创建和销售按需定制的产品。由于每件定制商品都需要 Teespring 内部的多个资源,因此它们将 PB 级数据存储在 Amazon S3 中。
“Amazon S3 批量操作通过使用 Amazon S3 的 Glacier 存储类帮助我们优化存储。我们使用了自己的存储元数据来创建可移至 Amazon S3 Glacier 的批量对象。使用 Amazon S3 Glacier,我们节省了超过 80% 的存储成本。我们一直在寻找实现存储管理自动化的机会,使用 S3 批量操作,我们可以在几分钟内管理数百万个对象。”
Teespring 的工程副总裁 James Brady
Capital One 是一家集金融和技术于一体的银行,并且是美国最知名的品牌之一。
Capital One 使用 Amazon S3 批量操作在两个 AWS 区域之间复制数据,以增加其数据的冗余度,并标准化这两个位置之间的数据占用空间。
“我们通过使用 Amazon S3 批量操作来创建作业,可以在数小时内复制数百万个对象,而以往这项工作通常需要数月才能完成。我们使用 Amazon S3 的库存报告作为 Amazon S3 批量操作作业的输入,该报告列出了存储桶中存储的对象。Amazon S3 在复制数据、提供进度更新以及在作业完成时提供审计报告方面发挥重要作用。这项功能为我们的团队节省了数周的手动工作,并将这种大规模的数据传输变成了日常工作。”
Capital One 软件工程部副总裁 Franz Zemen

作为 AWS 的高级咨询合作伙伴,ePlus 与客户一起优化他们的 IT 环境,并使用类似 S3 批量操作的解决方案为客户节省时间和金钱。
“S3 批量操作简直太神奇了。它不仅有助于为每个客户端节省时间,减轻复杂且琐碎的工作,这些工作包括汇集多种 S3 操作、调度作业,然后将信息呈现在一个简单易用的控制面板上,它还帮助处理一些让人望而生畏的使用案例,我认为我们无法在 S3 批量操作所用时间内处理这些使用案例。
例如,S3 批量操作能快速完成在同一账户内跨区域复制超过 200 万个对象,同时保持元数据的完整。该解决方案可以不间断地跨多个账户执行类似的任务,最主要的是,它能生成了一份完成报告,该报告自动在 4 亿个对象之间筛选和分离了成功与失败的操作,从而可以在单个文件中更轻松地处理失败的操作。”
ePlus 的高级解决方案架构师和 AWS 认证专家 David Lin
S3 批量操作博客文章
AWS 新闻博客
Amazon S3 批量操作
Amazon S3 批量操作可用于以简单明了的方式轻松处理数百、数百万或数亿个 S3 对象。您可以将对象复制到另一个存储桶,设置标签或访问控制列表 (ACL),从 S3 Glacier 启动恢复请求或对每个对象调用 AWS Lambda。
AWS 存储博客
使用 S3 批量操作加密对象
本篇文章演示了如何创建对象列表、进行筛选,以便仅包含未加密的对象,设置权限以及执行 S3 批量操作作业来加密对象。加密现有对象是您可以使用 S3 批量操作来管理 Amazon S3 对象的众多方法之一。
AWS 存储博客
使用 S3 批量操作转码视频文件
本篇文章回顾了如何使用 S3 批量操作通过 AWS Lambda 触发视频转码作业,视频可以是存储在 S3 中的视频,也可以是从 Amazon S3 Glacier 还原的视频。