繁体   English   中英

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

[英]Can I programmatically move S3 objects to the Glacier storage class?

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

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

我已经尝试过-使用PHP SDK-在'StorageClass'参数设置为“ GLACIER”的情况下执行copyObject,但是可以预见的是,这是一个例外。 我猜文档是最新的,确实没有这样的价值:-)

我真的希望我缺少一些东西,因为我不想不得不下载这些文件,然后将它们“手动”上传到Glacier。 我也会缺少S3控制台的轻松还原功能。

没有命令告诉Amazon S3将特定对象归档到Amazon Glacier。 而是使用生命周期规则来标识对象。

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

  • 规则元数据 ,其中包括规则ID和指示该规则是启用还是禁用的状态。 如果禁用了规则,则Amazon S3将不会执行规则中指定的任何操作。
  • 前缀由哪个应用规则的关键前缀识别对象。
  • 您希望Amazon S3执行指定操作时,在对象生命周期具有日期或时间段的一个或多个过渡/到期操作

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

但是,每个生命周期配置限制为1000条规则

是的,您可以一次将对象移动到Amazon Glacier,但这实际上涉及将档案上传到Glacier,而不是从S3中“移动”它们。 另外,请注意-Glacier的“按请求”费用比S3高 ,这实际上可能使您花费更多,而节省的存储成本却更多。

同时,请考虑使用Amazon S3 Standard-不频繁访问存储类该类可以为不经常访问的数据节省大约S3存储成本的50%

您可以使用生命周期规则 (带有要归档的确切对象的前缀)以编程方式将S3上的特定对象归档到Glacier。

有一个PUT生命周期 API。 该API替换了整个生命周期配置,因此,如果您在此过程之外还有其他规则,则需要将其添加到您上载的每个生命周期中。 如果要存档特定文件,则可以:

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

第二个将更快地完成(因为您不需要在文件之间等待),但是要求您事先知道要存档的所有文件。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM