Amazon Simple Storage Service
开发人员指南 (API 版本 2006-03-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 Amazon S3 生命周期转换对象

您可以在生命周期配置中添加规则以指示 Amazon S3 将对象转换为另一个 Amazon S3 存储类。例如:

  • 当您知道对象不常访问时,您可能会将其转换为 STANDARD_IA 存储类。

  • 您可能想要将不需要实时访问的对象存档到 GLACIER 存储类。

以下各节介绍了受支持的转换、相关限制和到 GLACIER 存储类的转换。

受支持的转换和相关限制

在生命周期配置中,您可以定义用于将对象从一个存储类转换为另一个存储类的规则,以节省存储成本。如果您不了解对象的访问模式或访问模式不断变化,则可将对象转换为 INTELLIGENT_TIERING 存储类,以自动实现成本节省。有关存储类别的信息,请参阅Amazon S3 存储类

Amazon S3 支持用于在存储类之间进行转换的瀑布模型,如下图所示。


                        Amazon S3 存储类瀑布图形。

注意

该图未提及 REDUCED_REDUNDANCY 存储类,因为我们建议不使用该类别。

Amazon S3 支持在使用生命周期配置的存储类之间进行以下生命周期转换:

  • 您可以从 STANDARD 存储类转换为任何其他存储类。

  • 您可以从任何存储类转换为 GLACIER 或 DEEP_ARCHIVE 存储类。

  • 您可以从 STANDARD_IA 存储类转换为 INTELLIGENT_TIERING 或 ONEZONE_IA 存储类。

  • 您可以从 INTELLIGENT_TIERING 存储类转换为 ONEZONE_IA 存储类。

  • 您可以从 GLACIER 存储类转换为 DEEP_ARCHIVE 存储类。

以下生命周期转换不受支持:

  • 您无法从任何存储类转换为 STANDARD 存储类。

  • 您无法从任何存储类转换为 REDUCED_REDUNDANCY 存储类。

  • 您无法从 INTELLIGENT_TIERING 存储类转换为 STANDARD_IA 存储类。

  • 您无法从 ONEZONE_IA 存储类转换为 STANDARD_IA 或 INTELLIGENT_TIERING 存储类。

  • 您只能从 GLACIER 存储类转换为 DEEP_ARCHIVE 存储类。

  • 您不能从 DEEP_ARCHIVE 存储类转换为任何其他存储类。

生命周期存储类转换具有以下约束:

  • 从 STANDARD 或 STANDARD_IA 存储类到 INTELLIGENT_TIERING。以下限制适用:

    • 对于较大的对象,转换到 INTELLIGENT_TIERING 可获得成本效益。Amazon S3 不会将小于 128 KB 的对象转换为 INTELLIGENT_TIERING 存储类,因为这样做不具有成本效益。

       

  • 从 STANDARD 存储类到 STANDARD_IA 或 ONEZONE_IA。以下限制适用:

     

    • 对于较大的对象,转换到 STANDARD_IA 或 ONEZONE_IA 可获得成本效益。Amazon S3 不会将小于 128 KB 的对象转换为 STANDARD_IA 或 ONEZONE_IA 存储类,因为这样做不具有成本效益。

       

    • 必须在当前存储类中将对象存储至少 30 天,然后才能将对象转换为 STANDARD_IA 或 ONEZONE_IA。例如,您无法创建用于在对象创建 1 天后将其转换为 STANDARD_IA 存储类的生命周期规则。

       

      Amazon S3 不会在第一个 30 天内转换对象,因为较新的对象的访问频率或删除速度通常高于 STANDARD_IA 或 ONEZONE_IA 存储应有的值。

       

    • 如果您在转换非当前对象 (在受版本控制的存储桶中),则只能将至少在 30 天内是非当前版本的对象转换为 STANDARD_IA 或 ONEZONE_IA 存储。

       

  • 从 STANDARD_IA 存储类到 ONEZONE_IA。以下限制适用:

    • 必须在 STANDARD_IA 存储类中将对象存储至少 30 天,然后才能将对象转换为 ONEZONE_IA 类别。

       

您可以组合这些生命周期操作来管理对象的完整生命周期。例如,假设您创建了具有明确定义的生命周期的对象。最初,这些对象在 30 天的周期内可能被经常访问。紧接着,对象在长达 90 天内不常访问。之后,不再需要对象,您可能选择存档或删除对象。

在此方案中,您创建一个生命周期规则,用于指定到 INTELLIGENT_TIERING、STANDARD_IA 或 ONEZONE_IA 存储的初始转换操作,并指定到用于存档的 GLACIER 存储的另一个转换操作以及一个过期操作。在将对象从一个存储类移至另一个存储类时,可节省存储成本。有关成本考虑的更多信息,请参阅 Amazon S3 定价

重要

当 GLACIER 或 DEEP_ARCHIVE 转换在 INTELLIGENT_TIERING、STANDARD_IA 或 ONEZONE_IA 转换发生后的不到 30 天内发生时,您无法同时为 INTELLIGENT_TIERING(或 STANDARD_IA 或 ONEZONE_IA)和 GLACIER 或 DEEP_ARCHIVE 转换指定一个生命周期规则。这是因为,存在与 INTELLIGENT_TIERING、STANDARD_IA 和 ONEZONE_IA 存储类关联的最少 30 天存储费用。

在指定从 STANDARD_IA 存储到 ONEZONE_IA 或 INTELLIGENT_TIERING 存储的转换时,此最少 30 天存储费用也将适用。您可以指定两个规则来实现这一点,而只需支付最少存储费用。有关成本考虑的更多信息,请参阅 Amazon S3 定价

转换为 GLACIER 和 DEEP ARCHIVE 存储类(对象存档)

使用生命周期配置,可以将对象转换为用来存档的 GLACIER 或 DEEP_ARCHIVE 存储类。如果选择 GLACIER 或 DEEP_ARCHIVE 存储类,您的对象将在 Amazon S3 中保留。您无法直接通过单独的 Amazon S3 Glacier 服务访问它们。

在存档对象之前,请查看以下章节中的相关注意事项。

一般注意事项

下面是存档对象之前的一般注意事项:

  • 加密对象在整个存储类转换过程中保持加密状态。

     

  • 存储在 GLACIER 或 DEEP_ARCHIVE 存储类中的对象无法实时可用。

     

    存档的对象是 Amazon S3 对象,但在您可以访问某个存档的对象之前,您必须先还原它的临时副本。根据您在恢复请求内指定的持续时间,恢复的对象副本仅在该期间内可用。在此之后,Amazon S3 会删除临时副本,而对象仍在 Amazon S3 Glacier 中存档。

     

    您可以使用 Amazon S3 控制台还原对象,也可以在代码中使用 AWS 开发工具包包装程序库或 Amazon S3 REST API 以编程方式还原对象。有关更多信息,请参阅 还原存档对象

     

  • 存储在 GLACIER 存储类中的对象只能转换为 DEEP_ARCHIVE 存储类。

     

    您只能使用生命周期配置规则将对象的存储类从 GLACIER 转换为 DEEP_ARCHIVE 存储类。如果要将存储在 GLACIER 中的对象的存储类更改为 DEEP_ARCHIVE 以外的存储类,您必须首先使用还原操作制作该对象的临时副本。然后使用复制操作覆盖对象,并将 STANDARD、INTELLIGENT_TIERING、STANDARD_IA、ONEZONE_IA 或 REDUCED_REDUNDANCY 指定为存储类。

     

  • 对象到 DEEP_ARCHIVE 存储类的转换只能是单向的。

     

    您无法使用生命周期配置规则将对象的存储类从 DEEP_ARCHIVE 转换为任何其他存储类。如果要将已存档对象的存储类更改为其他存储类,您必须首先使用还原操作制作该对象的临时副本。然后使用复制操作覆盖对象,并将 STANDARD、INTELLIGENT_TIERING、STANDARD_IA、ONEZONE_IA、GLACIER 或 REDUCED_REDUNDANCY 指定为存储类。

     

  • 存储在 GLACIER 和 DEEP_ARCHIVE 存储类中的对象只能通过 Amazon S3 可见和可用。不能通过单独的 Amazon S3 Glacier 服务提供。

     

    这些对象是 Amazon S3 对象,您只能通过使用 Amazon S3 控制台或 Amazon S3 API 访问它们。无法通过单独的 Amazon S3 Glacier 控制台或 Amazon S3 Glacier API 访问这些存档的对象。

与成本相关的注意事项

如果您计划在数月或数年的时间内存档不经常访问的数据,则 GLACIER 和 DEEP_ARCHIVE 存储类可以降低您的存储成本。但是,为确保 GLACIER 或 DEEP_ARCHIVE 存储类适合您,请考虑以下事项:

  • 存储开销费用 – 将对象转换为 GLACIER 或 DEEP_ARCHIVE 存储类时,需向每个对象添加固定存储量以容纳用于管理对象的元数据。

     

    • 对于存档到 GLACIER 或 DEEP_ARCHIVE 的每个对象,Amazon S3 均使用 8 KB 存储来保存对象的名称和其他元数据。Amazon S3 保存此元数据,以便您能够通过使用 Amazon S3 API 获得您已存档的对象的实时列表。有关更多信息,请参阅 Get Bucket (List Objects)。将按照 Amazon S3 标准费率对此附加存储收费。

       

    • 对于每个存档到 GLACIER 或 DEEP_ARCHIVE 的对象,Amazon S3 添加 32 KB 的存储用于索引和相关元数据。标识和还原对象需要此额外数据。将按照 GLACIER 或 DEEP_ARCHIVE 费率对此附加存储收费。

       

    如果您打算存档小对象,请考虑这些存储费用。还可以考虑将许多小型对象合并为少量大型对象,以便减少开销成本。

     

  • 计划存档对象的天数—GLACIER 和 DEEP_ARCHIVE 是长期存档解决方案。GLACIER 存储类的最短存储持续期间是 90 天,DEEP_ARCHIVE 是 180 天。如果删除的对象的存档时间超过最短存储持续期间,则删除存档到 Amazon S3 Glacier 的数据是免费的。如果在最短持续期间内删除或覆盖存档的对象,则 Amazon S3 将收取按比例计算的提早删除费。

     

  • Amazon S3 GLACIER 和 DEEP_ARCHIVE 转换请求费用—每个转换为 GLACIER 或 DEEP_ARCHIVE 存储类的对象都构成一个转换请求。每个这类请求都有成本。如果您计划转换大量对象,则考虑这些请求费用。如果存档的是小型对象,可以考虑将很多小型对象聚合为少量大型对象,以减少转换请求成本。

     

  • Amazon S3 GLACIER 和 DEEP_ARCHIVE 数据还原费用—GLACIER 和 DEEP_ARCHIVE 旨在用于长期存档您不经常访问的数据。有关数据还原费用的信息,请参阅 Amazon S3 常见问题中的从 Amazon S3 Glacier 检索数据的成本是多少?有关如何从 Amazon S3 Glacier 还原数据的信息,请参阅 还原存档对象

当通过使用对象生命周期管理将对象存档到 Amazon S3 Glacier 时,Amazon S3 会异步转换这些对象。生命周期配置规则中的转换日期与实际转换日期之间可能存在延迟。收取的 Amazon S3 Glacier 价格基于此规则中指定的转换日期。

Amazon S3 产品详细信息页面针对存档 Amazon S3 对象提供了定价信息和示例计算。有关更多信息,请参阅以下主题:

恢复存档对象

已存档对象无法实时访问。您必须首先启动恢复请求,然后耐心等待,直到对象的临时副本根据您在请求中指定的持续时间变为可用。收到已恢复数据元的临时副本后,数据元的存储类仍保持为 GLACIER 或 DEEP_ARCHIVE。(HEAD 对象GET 对象 API 操作请求会返回 GLACIER 或 DEEP_ARCHIVE 作为存储类别。)

注意

在还原某个存档时,您同时为存档(以 GLACIER 或 DEEP_ARCHIVE 费率)和临时还原的副本(REDUCED_REDUNDANCY 存储费率)付费。有关定价的信息,请参阅 Amazon S3 定价

可以编程方式或者使用 Amazon S3 控制台还原对象副本。Amazon S3 对每个对象每次仅处理一个还原请求。有关更多信息,请参阅 还原存档对象