问题描述
我希望在一段时间内不使用 S3 对象后将其删除。
具体来说,应该有两个规则:
- 在它们闲置一段时间后(6 个月)将它们移至冰川
- 在它们进入冰川 2 周后删除它们
对象位于版本化存储桶中。我也知道在 90 天前删除冰川对象会产生删除费用,但这不是问题。
现在,我可以通过 Intelligent-Tiering Archive configuration
轻松完成目标 1。
但是,我不知道是否可以完成对象 2 - 当我查看生命周期规则时,我找不到一种方法来指定我要删除某个版本的所有版本(当前和过去)已在 Glacier(存档)中放置 2 周的对象。
我能想到的建模这个问题的唯一方法是:
- 创建“智能分层归档配置”,在 6 个月后移至归档,并在 2 周后移至深度归档
- 创建一个 lambda,它会过期并删除深度存档中的所有对象版本。
这有两个缺点:
- 即使几乎没有使用过,我也会为深度归档存储付费(但这没什么大不了的)
- 我需要写一个 Lambda
有更简单的解决方案吗?
解决方法
无需移动到深层冰川,即可检测物体在冰川类中存在的时间。
当一个对象类被转换时,会创建一个新的版本,它在LastModified
字段中携带更新的时间戳,可以查询,以决定是否应该删除一个对象。>
关于删除本身,没有自动的方法来做到这一点。