S3版本控制与生命周期
版本控制
存储桶可以处于三种状态之一:非(无)版本化(默认),启用版本控制或暂停版本控制。通过启用了版本控制的存储桶可以恢复因意外删除或覆盖操作而失去的对象。例如:
- 如果删除对象(而不是永久移除它),则 Amazon S3 会插入删除标记,该标记将成为当前对象版本。通过回滚可以恢复到以前的版本。
- 如果覆盖对象,则会导致存储桶中出现新的对象版本。通过回滚可以恢复到以前的版本。
一旦您对存储桶启用了版本控制,它将无法返回到无版本控制状态。但是,您可以在该存储桶上暂停版本控制。
版本控制状态将应用到该存储桶中的所有(不是某些)对象。您第一次对存储桶启用版本控制后,该存储桶中的对象将在之后一直受版本控制,并具有唯一的版本 ID。在您设置版本控制状态之前存储在存储桶中的对象具有版本 ID null。启用版本控制时,存储桶中的现有对象不会更改。更改的是 Amazon S3 在以后的请求中处理这些对象的方式。 存储桶拥有者(或任何具有适当权限的用户)可以暂停版本控制以停止累积对象版本。暂停版本控制时,存储桶中的现有对象不会更改。更改的是 Amazon S3 在以后的请求中处理对象的方式。
改变不了之前,只能影响后面的处理
在启用版本控制后,简单的DELETE无法永久删除对象,只是标记一下而已,要永久删除必须制定版本。
生命周期
S3支持通过以配置的形式实现对象的生命周期管理,主要应用在以下两种场景:
- 如果你需要定期清理S3中的对象数据,可以设置相应的对象生命周期策略,实现对象的定期有计划删除。
- 如果一些对象数据在一段限定的时间内需要频繁访问,之后这些不再需要访问,可以通过指定对象的生命周期策略,实现后台存储数据从热存储向冷存储(存储成本更低)的自动迁移,从而降低存储成本。