【问题标题】:AWS S3: change storage class without replicating the objectAWS S3:更改存储类而不复制对象
【发布时间】:2019-04-06 09:45:26
【问题描述】:

我的存储桶有一个复制规则,可以将对象备份到另一个区域/存储桶。

现在我想更改源对象中的存储类(标准 -> 不频繁访问),但似乎通过 CopyObjectRequest API(java 客户端)应用的这种更改正在触发复制。这很不幸,因为跨区域复制是有成本的。

所以目前的“旅程”如下:

  1. 对象存储在标准类,源桶中
  2. 我将存储类更改为 IA
  3. 对象被复制到另一个区域(标准类)
  4. 1 天后,它被移至冰川。

如您所见,这完全是浪费金钱,因为复制最终会将同一个对象再次移动到冰川中。

如何避免这种情况?

【问题讨论】:

    标签: amazon-s3 replication


    【解决方案1】:

    使用源存储桶中的生命周期策略将当前对象版本转换为所需的存储类。这应该迁移当前对象而不更改其版本 ID,并且不应触发复制事件。

    否则,您需要从一开始就创建具有所需存储类的对象。用户操作无法在不创建新对象版本的情况下更改对象的存储类,因此无法避免看似多余的复制事件——因为您正在创建新的对象版本。

    【讨论】:

    • 谢谢!我将遵循这两个建议:创建具有所需存储类的新对象,并为现有对象添加生命周期规则。至于现有的对象,很遗憾我不能使用前缀来选择我需要更改的对象,但可以添加一个标签,然后将规则应用于该标签。
    • hmm 我担心标记会出现同样的问题。我也不能使用正则表达式来缩小我感兴趣的对象,因为这不受支持。有时,AWS 似乎竭尽全力阻止您降低费用 :) 我认为剩下的唯一解决方案是停止复制、更改存储类、恢复复制,最后强制复制同时创建的对象。
    • 我希望标记更改不会导致重新复制。
    • 你是对的......但现在还有另一个问题。如果通过生命周期规则完成,则需要 30 天才能移至 One Zone-Infrequent Access。所以我必须等待 1 个月来测试它,再等一个月才能看到生产中的结果。 F *** 他们,我将禁用/启用复制,这更容易......
    猜你喜欢
    • 1970-01-01
    • 2018-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-17
    • 1970-01-01
    相关资源
    最近更新 更多