将具有 Glacier 存储 class 的 S3 文件移动到其他文件夹

move S3 files with Glacier storage class to a different folder

我们有大量文件位于 S3 中的错误文件夹中,但已转移到 Glacier 存储 class。第一件事是我们要恢复它们,以便我们可以将它们移动到正确的文件夹中。移动后,我们将其转换回 Glacier 存储 class。主要问题是,这些文件是否会在 Glacier 端复制?因为恢复它们(到标准)并不意味着它们在 Glacier 端被删除或移动。我们如何验证它们在移动到标准 class 中的不同文件夹后没有重复?

Amazon S3 对象是不可变的。您不能 "move" S3 或 Glacier 中的对象。

过程将是:

  • 从 Glacier 存储中恢复 对象 class
  • Rename/move 他们: 这实际上并没有发生。相反,对象被 复制 到新的 Key,然后原始对象被 删除 。在控制台中使用 "Rename" 可以为您执行此操作,就像 AWS CLI aws mv 命令一样。
  • 创建生命周期规则以将它们转换到 Glacier 存储class

来自CopyObject - Amazon Simple Storage Service

If the source object's storage class is GLACIER, you must restore a copy of this object before you can use it as a source object for the copy operation.

将对象转移到 S3 Glacier Deep Archive 存储 class 只能采用一种方式。

根据,https://docs.aws.amazon.com/AmazonS3/latest/dev/lifecycle-transition-general-considerations.html

您不能使用生命周期配置规则将对象的存储 class 从 S3 Glacier Deep Archive 转换为任何其他存储 class。如果要将归档对象的存储 class 更改为另一个存储 class,则必须先使用还原操作制作对象的临时副本。然后使用复制操作覆盖指定STANDARD、INTELLIGENT_TIERING、STANDARD_IA、ONEZONE_IA、S3 Glacier或REDUCED_REDUNDANCY的对象作为存储class.

要从 Glacier 中永久删除数据,请参阅 https://docs.aws.amazon.com/amazonglacier/latest/dev/deleting-an-archive.html

重命名文件夹涉及成本。参见