gpt4 book ai didi

amazon-web-services - S3 生命周期策略删除没有特定标记值的所有对象

转载 作者:行者123 更新时间:2023-12-04 15:42:42 25 4
gpt4 key购买 nike

在阅读 this S3 Lifecycle Policy document 时我发现可以删除包含特定 key=value 对的 S3 对象,例如,

<LifecycleConfiguration>
<Rule>
<Filter>
<Tag>
<Key>key</Key>
<Value>value</Value>
</Tag>
</Filter>
transition/expiration actions.
...
</Rule>
</LifecycleConfiguration>

但是是否有可能创建一个类似的规则来删除 key=value 对中的任何对象NOT?例如,无论何时访问我的对象,我都可以使用当前日期更新它的标签,例如 object-last-accessed=07-26-2019 .然后我可以创建一个 Lambda 函数,每天删除当前的 S3 生命周期策略,然后创建一个新的生命周期策略,其中每一天都有一个最近 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>值(value)可能?我想删除过去 30 天内未访问过的任何 S3 对象(这与超过 30 天的对象不同)。

最佳答案

据我了解,这是可能的,但需要通过不同的机制。

我的解决方案是采用稍微不同的方法,为每个对象设置一个标签,然后根据需要更改该标签。因此,在您的实例中,当对象被创建时,将对象上次访问设置为“默认”,通过 S3 触发器对一段 Lambda 或当对象写入 S3 时执行此操作。

当对象被访问时,则将标签值更新为当前日期。

如果您已经有一个装满对象的存储桶,您可以使用 S3 批处理将标签设置为当前日期,并将其用作增量引用点,从中假设文件是​​上次访问的

https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutObjectTagging.html

现在设置生命周期规则以在 10 天(或任何您想要的)后删除带有“默认”标签的对象。添加附加规则以删除带有日期标记的文件,该日期在该日期之后 10 天。您需要定期更新生命周期规则,但一次可以创建 1000 个。该文档提供了规则的正式细节 https://docs.aws.amazon.com/AmazonS3/latest/API/API_LifecycleRule.html我会建议这样的东西

<LifecycleConfiguration>
<Rule>
<ID>LastAccessed Default Rule</ID>
<Filter>
<Tag>
<Key>object-last-accessed</Key>
<Value>default</Value>
</Tag>
</Filter>
<Status>Enabled</Status>
<Expiration>
<Days>10</Days>
</Expiration>
</Rule>
<Rule>
<ID>Last Accessed 2020-05-19 Rule</ID>
<Filter>
<Tag>
<Key>object-last-accessed</Key>
<Value>2020-05-19</Value>
</Tag>
</Filter>
<Status>Enabled</Status>
<Expiration>
<Date>2020-05-29</Date>
</Expiration>
</Rule>
</LifecycleConfiguration>

关于amazon-web-services - S3 生命周期策略删除没有特定标记值的所有对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57226310/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com