博客园  :: 首页  :: 管理

我们在对S3 Bucket 配置生命周期配置时,会看到有 【生命周期规则操作】下面有一个 Expire current versions of objects

也即是 【将对象的当前版本设为过期】的选框,如下图所示

对于一些有备份要求的对象,如要求只保存7天的备份的S3 Bucket, 笔者一般就是通过 选择  Expire current versions of objects ,然后配置一个 7

就可以达到效果 ,一个文件始终会保留7天的,也即始终都能看到7份数据,当然有时也能看到8份、主要是因为AWS在做删除时,并不是卡点删除,

而且后台有一定的自己的规则,到了某些点进行统一检查,删除,但无论如何,费用只会按7天计算的

 

但是上面的配置,还有一些其他的细节点说明,需要特别注意:
1、因为上面选择的时【将对象的当前版本设为过期】,并没有说会删除,笔者这里会有自动地定期清理操作,

是因为 S3 Bucket 没有开启 【存储桶版本控制/Bucket Versioning】,只这情况下,过期才会意味着是删除

 

2、那么也就是说如果开启了【存储桶版本控制/Bucket Versioning】,到了上面设置的过期时间,只是会将对象设为过期,

这样通过aws cli 或者页面默认看到的 都是当前版本的数据,如果要查看所有的版本,在Console中,S3 Bucket界面,

点开【Show versions】即可看到所有的版本,这种情况,过期了对象就不会被删除,会变成非当前版本,会一直产生存储费用,如下图

 

本文的目的来源于,笔者真实的环境,此前没有开启版本控制,只是设置了【将对象的当前版本设为过期】,会正常的执行7天后删除

后来由于一些其他原因,被其他成员设置开启了版本控制,笔者无意间就发现S3 bucket的存储总量越来越大,才找到原因,于是总结于此

 

 

 

尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17601769.html