代码之家  ›  专栏  ›  技术社区  ›  erikdebruin

我可以通过编程将S3对象移动到Glacier存储类吗?

  •  3
  • erikdebruin  · 技术社区  · 8 年前

    我在S3存储桶中有1000个大文件(5-500Mb,大多数是~100Mb),根本没有组织-没有“目录”。这些文件都有不同的到期时间(有些在60天后到期,有些在90天后到期,等等),之后我想将它们转移到Glacier存储类。

    我已经研究了生命周期特性,但找不到如何将特定规则应用于一个文件。它们似乎只能通过使用前缀来工作,我宁愿不改变我的命名约定。

    我真的希望我遗漏了一些东西,因为我不愿意不得不下载这些文件,然后“手动”上传到冰川。我还缺少S3控制台的简单恢复功能。

    2 回复  |  直到 8 年前
        1
  •  4
  •   John Rotenstein    8 年前

    没有命令告诉AmazonS3将特定对象存档到Amazon Glacier。相反 Lifecycle Rules 用于标识对象。

    这个 Lifecycle Configuration Elements 文档显示了每个规则,包括:

    • 规则元数据 包括规则ID,以及指示规则是启用还是禁用的状态。如果规则被禁用,Amazon S3将不会执行规则中指定的任何操作。
    • 前缀 通过应用规则的密钥前缀标识对象。
    • 一个或多个 具有日期或时间段的转换/过期操作 当您希望Amazon S3执行指定的操作时,在对象的生存期内。

    唯一的识别方法 哪一个 对象通过 前缀 参数因此,您需要为每个对象指定单独的规则。(前缀可以包括完整的对象名称。)

    然而,有一个 1000条规则的限制

    Glacier的“按请求”收费高于S3 实际上,这可能比您在存储成本方面节省的成本还要多。

    同时,考虑使用 Amazon S3 Standard - Infrequent Access storage class 节省约50%的S3存储成本 用于不常访问的数据。

        2
  •  0
  •   Chris Midgley    8 年前

    Lifecycle Rules (带有要存档的确切对象的前缀)。

    有一个 PUT lifecycle 应用程序编程接口。此API取代 全部的

    • 对于每个文件,使用一个规则创建生命周期,等待文件传输完毕,然后对下一个文件执行相同的操作
    • 使用每个文件一个规则创建生命周期配置

    第二个过程将更快完成(因为您不需要在文件之间等待),但需要提前了解要归档的所有文件。

    每个生命周期配置最多有1000条规则,因此,如果要归档的文件太多,则需要将它们拆分为单独的生命周期配置。