【问题标题】:move S3 files with Glacier storage class to a different folder将具有 Glacier 存储类的 S3 文件移动到不同的文件夹
【发布时间】:2020-03-16 12:53:43
【问题描述】:

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

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-ec2 amazon-glacier


    【解决方案1】:

    Amazon S3 对象是不可变的。您不能在 S3 或 Glacier 中“移动”对象。

    这个过程是:

    • 恢复 Glacier 存储类中的对象
    • 重命名/移动它们:这实际上不会发生。而是将对象复制到新键,然后删除原始对象。在控制台中使用“重命名”可以为您执行此操作,AWS CLI aws mv 命令也是如此。
    • 创建生命周期规则以将它们转换为 Glacier 存储类

    来自CopyObject - Amazon Simple Storage Service

    如果源对象的存储类是GLACIER,则必须先恢复该对象的副本,然后才能将其用作复制操作的源对象。

    【讨论】:

    • 感谢您的澄清,我们也有以下步骤,我们首先还原然后将项目移动到不同的文件夹(根据您的观点,重命名为不同的键)。因此,作为一个附加问题,我们无法将文件重命名/移动到另一个密钥/文件夹而不恢复然后正确吗?
    • 正确。我从文档中添加了一个参考。
    • 我已尝试移动 Glacier 对象,但该项目恢复后不会重新启用复制/移动命令。该响应表明它应该。关于为什么的任何想法?该项目肯定已恢复。
    • @aphenine 您可以尝试使用 AWS CLI 复制对象吗?
    【解决方案2】:

    对象到 S3 Glacier Deep Archive 存储类的转换只能通过一种方式进行。

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

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

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

    重命名文件夹涉及成本。见https://stackoverflow.com/a/33006139/945214

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-02-24
      • 1970-01-01
      • 2010-10-30
      • 2021-12-19
      • 2020-06-16
      • 1970-01-01
      • 2018-05-15
      相关资源
      最近更新 更多