使用 Amazon S3 生命周期转换对象
您可以在 S3 生命周期配置中添加规则以指示 Amazon S3 将对象转换为另一个 Amazon S3 存储类。有关存储类的更多信息,请参阅 使用 Amazon S3 存储类。您何时可以以这种方式使用 S3 生命周期配置的一些示例包括以下内容:
-
当您知道对象不常访问时,您可能会将其转换为 S3 Standard-IA 存储类。
-
您可能想要将不需要实时访问的对象归档到 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 存储类。
现有对象和新对象
当您向存储桶添加生命周期配置时,配置规则将应用到现有对象以及您在以后添加的对象。例如,如果您在今天添加带有转换操作的生命周期配置规则,而该规则使带有特定前缀的对象在创建 30 天后转换为不同的存储类,则 Amazon S3 会将任何超过 30 天且具有指定前缀的现有对象加入转换队列。
重要
您不能使用存储桶策略来防止通过 S3 生命周期规则进行删除或转换。例如,即使您的存储桶策略拒绝所有主体的所有操作,您的 S3 生命周期配置也仍能正常发挥作用。
对象元数据
对于生命周期操作,将检查两种对象元数据类型:S3 对象锁定和复制状态 Pending
。如果在对象上配置了 S3 对象锁定,则生命周期不会使该对象的非当前版本过期。仅当受版本控制的版本键或非当前版本键过期时,才会检查此验证。此外,不会使处于待复制状态的键发生转换或过期。此验证仅适用于受版本控制的键(包括当前版本和非当前版本)。
受支持的转换和相关限制
在 S3 生命周期配置中,您可以定义用于将对象从一个存储类转换为另一个存储类的规则,以节省存储成本。如果您不了解对象的访问模式或访问模式不断变化,则可将对象转换为 S3 Intelligent-Tiering 存储类,以自动实现成本节省。有关存储类的信息,请参阅 使用 Amazon S3 存储类。
Amazon S3 支持用于在存储类之间进行转换的瀑布模型,如下图所示。
![Amazon S3 存储类瀑布图形。](images/lifecycle-transitions-v4.png)
支持的生命周期转换
Amazon S3 支持在使用 S3 生命周期配置的存储类之间进行以下生命周期转换。
您可以进行以下转换:
-
从 S3 Standard 存储类转换为任何其他存储类。
-
从 S3 Standard-IA 存储类转换为 S3 Intelligent-Tiering、S3 One Zone-IA、S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 存储类。
-
从 S3 Intelligent-Tiering 存储类转换为 S3 One Zone-IA、S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 存储类。
注意
将对象从 S3 Intelligent-Tiering 存储类转换为 S3 One Zone-IA 和一些 S3 Glacier 存储类时存在一些例外。有关更多信息,请参阅 不支持的生命周期转换。
-
从 S3 One Zone-IA 存储类转换为 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 存储类。
-
从 S3 Glacier Instant Retrieval 存储类转换为 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 存储类。
-
从 S3 Glacier Flexible Retrieval 存储类转换为 S3 Glacier Deep Archive 存储类。
-
从任何存储类转换为 S3 Glacier Deep Archive 存储类。
注意
生命周期转换不收取数据检索费用。但是,当使用 PUT
、COPY
或生命周期规则将数据移至任何 S3 存储类时,将按请求收取摄取费用。在将对象移动到任何存储类之前,请考虑摄取或转换成本。有关成本考虑事项的更多信息,请参阅 Amazon S3 定价
不支持的生命周期转换
Amazon S3 不支持以下任何生命周期转换。
您无法进行以下转换:
-
从任何存储类转换为 S3 Standard 存储类。
-
任何存储类转换为低冗余存储 (RRS) 类。
-
从 S3 One Zone-IA 存储类转换为 S3 Intelligent-Tiering、S3 Standard-IA 或 S3 Glacier Instant Retrieval 存储类。
-
从 S3 Intelligent-Tiering 存储类(所有层)转换为 S3 Standard-IA 存储类。
-
从 S3 Intelligent-Tiering 存储类归档即时访问层转换为 S3 One Zone-IA。
-
从 S3 Intelligent-Tiering 存储类归档访问层转换为 S3 One Zone-IA 或 S3 Glacier Instant Retrieval。
-
从 S3 Intelligent-Tiering 存储类深层归档访问层转换为 S3 One Zone-IA、S3 Glacier Instant Retrieval 或 S3 Glacier Flexible Retrieval。
约束
生命周期存储类转换具有以下约束:
对象大小以及从 S3 Standard 或 S3 Standard-IA 到 S3 Intelligent-Tiering 、S3 Standard-IA 或 S3 One Zone-IA 的转换
当您将对象从 S3 Standard 或 S3 Standard-IA 存储类转换为 S3 Intelligent-Tiering 、S3 Standard-IA 或 S3 One Zone-IA 时,将应用以下对象大小约束:
-
较大的对象 – 对于以下转换,转换较大对象具有成本效益:
-
从 S3 Standard 或 S3 Standard-IA 存储类转换为 S3 Intelligent-Tiering。
-
从 S3 Standard 存储类转换为 S3 Standard-IA 或 S3 One Zone-IA。
-
-
小于 128KiB 的对象 – 对于以下转换,Amazon S3 不转换小于 128KiB 的对象:
-
从 S3 Standard 或 S3 Standard-IA 存储类转换为 S3 Intelligent-Tiering 或 S3 Glacier Instant Retrieval。
-
从 S3 Standard 存储类转换为 S3 Standard-IA 或 S3 One Zone-IA。
-
注意
您可以根据对象大小过滤生命周期规则。
重要
当您在 S3 生命周期配置中有多个规则时,对象可能变得符合条件可在同一天执行多个 S3 生命周期操作。在这种情况下,Amazon S3 遵循以下一般规则:
-
永久删除优先于转换。
-
转换优先于删除标记的创建。
-
当对象有资格进行 S3 Glacier Flexible Retrieval 和 S3 Standard-IA(或 S3 One Zone-IA)转换时,Amazon S3 将选择 S3 Glacier Flexible Retrieval 转换。
转换为 S3 标准-IA 或 S3 单区-IA 的最短天数
在将对象转换为 S3 标准-IA 或 S3 单区-IA 之前,必须将它们存储在 Amazon S3 中至少达 30 天。例如,您无法创建用于在对象创建 1 天后将其转换为 S3 Standard-IA 存储类的生命周期规则。Amazon S3 在前 30 天内不支持此类转换,因为较新的对象的访问频率或删除速度通常高于适合 S3 标准-IA 或 S3 单区-IA 存储的值。
类似地,如果您在转换非当前对象(在受版本控制的存储桶中),则只能将至少在 30 天内是非当前版本的对象转换为 S3 Standard-IA 或 S3 One Zone-IA 存储。有关所有存储类的最短存储持续时间的列表,请参阅比较 Amazon S3 存储类。
S3 Standard-IA 和 S3 One Zone-IA 至少收取 30 天的存储费用
S3 Standard-IA 和 S3 One Zone-IA 存储等级至少收取 30 天的存储费用。因此,当 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 转换在 S3 Standard-IA 或 S3 One Zone-IA 转换发生后的不到 30 天内发生时,您无法同时为 S3 Standard-IA 或 S3 One Zone-IA 转换以及 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 转换指定单个生命周期规则。
在指定从 S3 Standard-IA 存储到 S3 One Zone-IA 的转换时,此最少 30 天存储费用也适用。您可以指定两个规则来实现这一点,而只需支付最少存储费用。有关成本考虑事项的更多信息,请参阅 Amazon S3 定价
管理对象的完整生命周期
您可以组合这些 S3 生命周期操作来管理对象的完整生命周期。例如,假设您创建了具有明确定义的生命周期的对象。最初,这些对象在 30 天的周期内可能被经常访问。紧接着,对象在长达 90 天内不常访问。之后,不再需要对象,您可能选择存档或删除对象。
在此方案中,您创建一个 S3 生命周期规则,用于指定到 S3 Intelligent-Tiering 、S3 Standard-IA 或 S3 One Zone-IA 存储的初始转换操作,并指定到用于存档的 S3 Glacier Flexible Retrieval 存储的另一个转换操作以及一个过期操作。在将对象从一个存储类移至另一个存储类时,可节省存储成本。有关成本考虑事项的更多信息,请参阅 Amazon S3 定价
转换为 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 存储类(对象存档)
通过使用 S3 生命周期配置,可以将对象转换为 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 存储类来进行存档。如果选择 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 存储类,您的对象将在 Amazon S3 中保留。您无法直接通过单独的 Amazon S3 Glacier 服务访问它们。有关 S3 Glacier 的更多一般信息,请参阅 Amazon S3 Glacier 开发人员指南中的什么是 Amazon S3 Glacier。
在存档对象之前,请查看以下章节中的相关注意事项。
一般注意事项
下面是存档对象之前的一般注意事项:
-
加密对象在整个存储类转换过程中保持加密状态。
-
存储在 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 存储类中的对象无法实时可用。
存档的对象是 Amazon S3 对象,但在您可以访问某个存档的对象之前,您必须首先恢复它的临时副本。根据您在还原请求内指定的持续时间,还原的对象副本仅在该期间内可用。在那之后,Amazon S3 将删除临时副本,并且对象将继续归档在 S3 Glacier Flexible Retrieval 中。
您可以使用 Amazon S3 控制台还原对象,也可以在代码中使用 AWS SDK 包装程序库或 Amazon S3 REST API 以编程方式还原对象。有关更多信息,请参阅 恢复已归档的对象。
-
存储在 S3 Glacier Flexible Retrieval 存储类中的对象只能转换为 S3 Glacier Deep Archive 存储类。
您只能使用 S3 生命周期配置规则将对象的存储类从 S3 Glacier Flexible Retrieval 转换为 S3 Glacier Deep Archive 存储类。如果要将存储在 S3 Glacier Flexible Retrieval 中的对象的存储类更改为 S3 Glacier Deep Archive 以外的存储类,您必须首先使用还原操作制作该对象的临时副本。然后使用复制操作覆盖对象,并将 S3 Standard 、S3 Intelligent-Tiering 、S3 Standard-IA、S3 One Zone-IA 或低冗余指定为存储类。
-
对象到 S3 Glacier Deep Archive 存储类的转换只能是单向的。
您无法使用 S3 生命周期配置规则将对象的存储类从 S3 Glacier Deep Archive 转换为任何其他存储类。如果要将已存档对象的存储类更改为其他存储类,您必须首先使用还原操作制作该对象的临时副本。然后使用复制操作覆盖对象,并将 S3 Standard、S3 Intelligent-Tiering、S3 Standard-IA、S3 One Zone-IA、S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 或 Reduced Redundancy Storage 或低冗余指定为存储类。
注意
在 Amazon S3 控制台中,对于 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 存储类中的对象,不支持对还原的对象执行复制操作。对于这种类型的复制操作,请使用 AWS Command Line Interface(AWS CLI)、AWS SDK 或 REST API。
存储在 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 存储类中的对象仅通过 Amazon S3 可见和可用。它们不能通过单独的 Amazon S3 Glacier 服务进行使用。
这些是 Amazon S3 对象,您只能使用 Amazon S3 控制台或 Amazon S3 API 访问它们。您无法通过单独的 Amazon S3 Glacier 控制台或 Amazon S3 Glacier API 访问已存档的对象。
与成本相关的注意事项
如果您计划在数月或数年的时间内存档不经常访问的数据,则 S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 存储类可以降低您的存储成本。但是,为确保 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 存储类适合您,请考虑以下事项:
-
存储开销费用 – 将对象转换为 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 存储类时,需向每个对象添加固定存储量以容纳用于管理对象的元数据。
-
对于存档到 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 的每个对象,Amazon S3 将 8 KB 存储用于对象的名称和其他元数据。Amazon S3 将存储此元数据,以便您可以使用 Amazon S3 API 获取已存档对象的实时列表。有关更多信息,请参阅获取存储桶(列出对象)。将按照 S3 Standard 标准费率对此附加存储收费。
-
对于每个存档到 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 的对象,Amazon S3 添加 32 KB 的存储用于索引和相关元数据。标识和还原对象需要此额外数据。按照 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 费率对此附加存储收费。
如果您打算存档小对象,请考虑这些存储费用。还可以考虑将许多小型对象合并为少量大型对象,以便减少开销成本。
-
-
Number of days you plan to keep objects archived(计划归档对象的天数)– S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 是长期存档解决方案。S3 Glacier Flexible Retrieval 存储类的最短存储持续期间是 90 天,S3 Glacier Deep Archive 是 180 天。如果删除的对象的存档时间超过最短存储持续期间,则删除存档到 Amazon S3 Glacier 的数据是免费的。如果在最短持续期间内删除或覆盖存档的对象,则 Amazon S3 将收取按比例计算的提前删除费用。有关提前删除费用的信息,请参阅“删除存储在 Amazon S3 Glacier 中不足 90 天的对象时,如何收费?” 问题(Amazon S3 常见问题
)。 -
S3 Glacier Flexible Retrieval and S3 Glacier Deep Archive transition request charges(S3 Glacier 和 S3 Glacier Deep Archive 转换请求费用)– 每个转换为 S3 Glacier 或 S3 Glacier Deep Archive 存储类的对象都构成一个转换请求。每个这类请求都有成本。如果您计划转换大量对象,则考虑这些请求费用。如果您归档的对象组合包括小对象,尤其是 128KB 以下的对象,我们建议您使用生命周期对象大小筛选条件从转换中筛选出小对象,以降低请求成本。S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 不会自动阻止 128KB 以下的对象转换。
-
S3 Glacier Flexible Retrieval and S3 Glacier Deep Archive data restore charges(S3 Glacier 和 S3 Glacier Deep Archive 数据还原费用)– S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive 旨在用于长期存档您不经常访问的数据。有关数据还原费用的信息,请参阅“从 Amazon S3 Glacier 检索数据如何收费?” 问题(Amazon S3 常见问题
)。有关如何从 Amazon S3 Glacier 还原数据的信息,请参阅恢复已归档的对象。
当通过使用 S3 生命周期管理将对象存档到 Amazon S3 Glacier 时,Amazon S3 会异步转换这些对象。S3 生命周期配置规则中的转换日期与实际转换日期之间可能存在延迟。收取的 Amazon S3 Glacier 价格基于此规则中指定的转换日期。有关更多信息,请参阅 Amazon S3 常见问题
Amazon S3 产品详细信息页面针对存档 Amazon S3 对象提供了定价信息和示例计算。有关更多信息,请参阅以下主题:
-
“将 Amazon S3 对象存档到 Amazon S3 Glacier 时,如何计算存储费用?” (Amazon S3 常见问题
)。 -
“删除存储在 Amazon S3 Glacier 中不足 90 天的对象时,如何收费?” (Amazon S3 常见问题
)。 -
“从 Amazon S3 Glacier 检索数据如何收费?” (Amazon S3 常见问题
)。 -
针对不同存储类的存储成本的 Amazon S3 定价
。
还原存档对象
无法实时访问已归档对象。您必须首先启动恢复请求,然后耐心等待,直到对象的临时副本根据您在请求中指定的持续时间变为可用。收到已还原对象的临时副本后,对象的存储类仍保持为 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive。(HeadObject 或 GetObject API 操作请求将返回 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 作为存储类。)
注意
在还原某个归档时,您同时为归档(以 S3 Glacier Flexible Retrieval 或 S3 Glacier Deep Archive 费率)和临时还原的副本(S3 Standard 存储费率)付费。有关定价的信息,请参阅 Amazon S3 定价
您可以采用编程方式或使用 Amazon S3 控制台恢复对象副本。Amazon S3 针对每个对象每次仅处理一个还原请求。有关更多信息,请参阅 恢复已归档的对象。