最近,Azure 存储生命周期管理支持追加 blob。我实现了在上次修改 20 天后删除特定容器中的所有项目。我关注了这个documentation 。但是我测试了几种方法,每次都等待超过48小时,还是没有删除blob。也许我忽略了一些事情。这是设置:
我有一个称为日志的 blob 容器。在日志中我有追加 Blob 。此容器中 20 多天前修改的所有内容都应删除。
这是我上次尝试的代码 View 。
{
"rules": [
{
"enabled": true,
"name": "PurgeLogData",
"type": "Lifecycle",
"definition": {
"actions": {
"baseBlob": {
"delete": {
"daysAfterModificationGreaterThan": 20
}
}
},
"filters": {
"blobTypes": [
"appendBlob"
],
"prefixMatch": [
"logs/20"
]
}
}
}
]
}
我已经尝试过的前缀匹配是:
- 日志
- 日志/
- 存储名称/日志
- 存储名称/日志/
- 日志/20
有人可以告诉我我做错了什么吗?我已经不知道它应该如何工作了。
最佳答案
检查了你问题中的规则,没问题。要删除容器中的所有 Blob,您只需为 prefixMatch
指定容器名称
即可。例如:
"prefixMatch": [
"logs"
]
以下是您需要检查的内容:
1.您是否对容器或 blob 应用了一些限制?例如。有没有immutability policies或blob leased ?
2.确保您等待至少 24 小时。
3.出于测试目的,您可以创建一个新容器,上传一些追加 blob,然后设置生命周期管理规则以在 1 天后删除这些 blob。我在身边测试过,可以正常工作。
关于Azure存储生命周期管理删除追加blob不删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65720192/