覆盖已转换为Glacier的对象时会发生什么?

51次阅读
没有评论

问题描述

创建了一个启用版本控制的存储桶,并在其中存放了500GB的对象。用户还设置了一个生命周期策略,在30天后将整个存储桶的对象转换为S3 Glacier存储类别,并且这个策略已经执行过了。现在,用户有一个已经转换到Glacier的文件file1.jpg,今天他上传了一个新版本的file1.jpg(上传到标准存储)。

用户想知道,这个新的file1.jpg会立即覆盖在Glacier中的那个版本吗?还是会在30天后才覆盖?另外,在这种情况下的存储成本有哪些影响?

解决方案

请注意以下操作可能涉及到Amazon S3的特定设置,请确保你的AWS账户拥有足够的权限,并且操作谨慎。

根据你的描述,当你上传一个新版本的对象时,如果该对象之前已经被转换为Glacier存储类别,那么以下是可能发生的情况:

  1. 覆盖行为:新上传的版本file1.jpg不会立即覆盖在Glacier中的旧版本,而是会保留旧版本。在30天的生命周期策略转换到Glacier后,新上传的版本不会立即受到影响。原有的Glacier版本不会被删除或覆盖,直到满足生命周期策略的条件。

  2. 存储成本:在这种情况下,由于新版本不会立即覆盖旧版本,所以会产生两个版本的存储成本:一个存储在Glacier中的旧版本,另一个存储在标准存储中的新版本。这会导致存储成本的增加,因为你需要同时维护两个版本的对象。注意,由于Glacier存储的费用相对较低,但检索数据的费用较高,所以确保你的使用场景不需要频繁从Glacier中检索数据。

如果你的用例需要经常上传新版本的文件,但并不打算检索已经转换为Glacier的旧版本,可以考虑以下几点来降低存储成本:

  1. 存储类别:考虑直接将新上传的文件存储到Glacier,这样不会产生标准存储和Glacier存储两份成本。但需要注意,从Glacier中检索数据可能会较昂贵。

  2. 生命周期策略调整:如果你不需要保留旧版本的Glacier文件,可以调整生命周期策略,设置在上传新版本后立即将旧版本转换为Glacier并删除。这样可以减少长期维护两个版本的成本,但需要谨慎,确保不会误删除需要的数据。

综上所述,根据你的用例需求和存储成本的考量,可以选择合适的策略来管理版本化对象的存储。

总结

在AWS S3中,如果已经将对象转换为Glacier存储类别,上传新版本的对象不会立即覆盖旧版本,而是会保留旧版本直到满足生命周期策略的条件。这会导致存储成本的增加,因为需要同时维护两个版本的对象。用户可以根据实际需求和存储成本考虑存储类别和生命周期策略的调整,以最优化对象版本管理。

正文完