在 S3 存储桶中使用版本控制 - Amazon Simple Storage Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

欢迎使用新的 Amazon S3 用户指南! Amazon S3 用户指南结合了以下三个已停用的指南中的信息和说明:Amazon S3 开发人员指南Amazon S3 控制台用户指南Amazon S3 入门指南

在 S3 存储桶中使用版本控制

Amazon S3 中的版本控制是在相同的存储桶中保留对象的多个变量的方法。对于存储桶中存储的每个对象,您可以使用 S3 版本控制功能来保留、检索和还原它们的各个版本。使用版本控制能够更加轻松地从用户意外操作和应用程序故障中恢复数据。为存储桶启用版本控制后,如果 Amazon S3 同时收到针对同一对象的多个写入请求,它会存储所有对象。

启用了版本控制的存储桶可以帮助您恢复因意外删除或覆盖操作而失去的对象。例如,如果您删除对象,Amazon S3 会插入删除标记,而不是永久删除该对象。删除标记将成为当前对象版本。如果覆盖对象,则会导致存储桶中出现新的对象版本。您始终可以恢复以前的版本。有关更多信息,请参阅 从启用了版本控制的存储桶中删除对象版本

默认情况下,S3 版本控制在存储桶上处于禁用状态,您必须明确启用它。有关更多信息,请参阅 在存储桶上启用版本控制

注意

SOAP API 不支持 S3 版本控制。HTTP 上的 SOAP 支持已弃用,但是仍可在 HTTPS 上使用。SOAP 不支持新增的 Amazon S3 功能。

不受版本控制、启用了版本控制和已暂停版本控制的存储桶

存储桶可能处于以下三种状态之一:

  • 不受版本控制(默认)

  • 已启用版本控制

  • 已暂停版本控制

您可以在存储桶级别启用和暂停版本控制。一旦您对存储桶启用了版本控制,它将无法返回到不受版本控制状态。但是,您可以在该存储桶上暂停版本控制。

版本控制状态将应用到该存储桶中的所有 (不是某些) 对象。第一次对存储桶启用版本控制后,该存储桶中的对象将在此后一直受版本控制,并具有唯一的版本 ID。请注意以下几点:

  • 在您设置版本控制状态之前存储在存储桶中的对象的版本 ID 为 null。启用版本控制时,存储桶中的现有对象不会更改。更改的是 Amazon S3 在以后的请求中处理这些对象的方式。有关更多信息,请参阅 使用启用版本控制的存储桶中的对象

  • 存储桶拥有者 (或任何具有适当权限的用户) 可以暂停版本控制以停止累积对象版本。暂停版本控制时,存储桶中的现有对象不会更改。更改的内容是 Amazon S3 将如何处理未来请求中的数据元。有关更多信息,请参阅 使用已暂停版本控制的存储桶中的对象

将 S3 版本控制与 S3 生命周期结合使用

要自定义您的数据保留方法和控制存储成本,请将对象版本控制与 S3 生命周期结合使用。有关更多信息,请参阅 管理存储生命周期。有关使用 AWS 管理控制台、AWS CLI、AWS 开发工具包或 REST API 创建 S3 生命周期策略的信息,请参阅在存储桶上设置生命周期配置

重要

如果您在不受版本控制的存储桶中具有对象到期生命周期策略,并且希望在启用版本控制时保持相同的永久删除行为,则必须添加非当前版本到期策略。非当前版本到期生命周期策略将管理在受版本控制的存储桶中删除非当前对象版本的行为。(启用版本控制的存储桶会维护一个当前对象版本,以及零个或零个以上非当前对象版本。) 有关更多信息,请参阅 在存储桶上设置生命周期配置

有关使用 S3 版本控制的信息,请参阅以下主题。