分配标签后删除 S3 对象
Remove S3 object after assign tag
我想在分配标签 30 天后删除 AWS S3 对象。当我在创建过程中标记一个新文件时似乎很容易,但是如果该文件是在 30 多天前创建的并且我仍然希望符合保留策略(30 天)并且不要过早删除它怎么办。
我希望我可以对 Glacier 使用事务生命周期策略,然后删除文件,但它也基于创建日期。
还有没有不使用 lambda 的选项吗?
{
"Rules": [
{
"Status": "Enabled",
"NoncurrentVersionExpiration": {
"NoncurrentDays": 31
},
"NoncurrentVersionTransitions": [
{
"NoncurrentDays": 1,
"StorageClass": "GLACIER"
}
],
"Filter": {
"Tag": {
"Value": "true",
"Key": "toDelete"
}
},
"Expiration": {
"Days": 31
},
"Transitions": [
{
"Days": 1,
"StorageClass": "GLACIER"
}
],
"ID": "delete-tagged-toDelete-after-31days"
}
]
}
没有"out-of-the-box"解决方案可以解决您的问题。
Amazon S3 生命周期规则基于创建日期。向对象添加标签不足以 "reset the clock" 生命周期规则。
一些想法:
- 您可能能够将对象复制到自身并添加标签。这可能应该是对象上的创建日期。
- 您可以创建一个 AWS Lambda 函数,由 Amazon CloudWatch Events 规则定期触发,扫描存储桶中的对象并根据标签删除它们。该标签可以包含一个删除日期,Lambda 函数使用它来确定删除日期是否已过。
我想在分配标签 30 天后删除 AWS S3 对象。当我在创建过程中标记一个新文件时似乎很容易,但是如果该文件是在 30 多天前创建的并且我仍然希望符合保留策略(30 天)并且不要过早删除它怎么办。
我希望我可以对 Glacier 使用事务生命周期策略,然后删除文件,但它也基于创建日期。
还有没有不使用 lambda 的选项吗?
{
"Rules": [
{
"Status": "Enabled",
"NoncurrentVersionExpiration": {
"NoncurrentDays": 31
},
"NoncurrentVersionTransitions": [
{
"NoncurrentDays": 1,
"StorageClass": "GLACIER"
}
],
"Filter": {
"Tag": {
"Value": "true",
"Key": "toDelete"
}
},
"Expiration": {
"Days": 31
},
"Transitions": [
{
"Days": 1,
"StorageClass": "GLACIER"
}
],
"ID": "delete-tagged-toDelete-after-31days"
}
]
}
没有"out-of-the-box"解决方案可以解决您的问题。
Amazon S3 生命周期规则基于创建日期。向对象添加标签不足以 "reset the clock" 生命周期规则。
一些想法:
- 您可能能够将对象复制到自身并添加标签。这可能应该是对象上的创建日期。
- 您可以创建一个 AWS Lambda 函数,由 Amazon CloudWatch Events 规则定期触发,扫描存储桶中的对象并根据标签删除它们。该标签可以包含一个删除日期,Lambda 函数使用它来确定删除日期是否已过。