在阅读此 S3 Lifecycle Policy 文档时,我发现可以删除包含特定key=value对的 S3 对象,例如,
<LifecycleConfiguration>
<Rule>
<Filter>
<Tag>
<Key>key</Key>
<Value>value</Value>
</Tag>
</Filter>
transition/expiration actions.
...
</Rule>
</LifecycleConfiguration>
但是是否有可能创建一个类似的规则来删除任何不在key=value对中的对象?例如,每当我的对象被访问时,我都可以用当前日期的天数来更新它的标签,例如object-last-accessed=07-26-2019
. 然后我可以创建一个每天删除当前 S3 生命周期策略的 Lambda 函数,然后创建一个新的生命周期策略,该策略在过去 30 天的每一天都有一个标签,然后我的生命周期策略将自动删除任何尚未访问的对象过去 30 天;任何访问时间超过 30 天的内容的日期值都会比生命周期策略中的任何值都旧,因此它会被删除。
这是我想要的一个例子(注意我添加了所需的字段<exclude>
,
<LifecycleConfiguration>
<Rule>
<Filter>
<exclude>
<Tag>
<Key>last-accessed</Key>
<Value>07-30-2019</Value>
</Tag>
...
<Tag>
<Key>last-accessed</Key>
<Value>07-01-2019</Value>
</Tag>
<exclude>
</Filter>
transition/expiration actions.
...
</Rule>
</LifecycleConfiguration>
像我的虚构<exclude>
价值这样的东西可能吗?我想删除过去 30 天内未访问过的任何 S3 对象(这与超过 30 天的对象不同)。