![](/img/trans.png)
[英]Azure blob storage life cycle management - set filter at container level
[英]Azure Storage Account V2 Life cycle management on container deleting all blobs
我们在其中一个容器上定义了一个生命周期管理规则来删除 blob,如下所示。 将删除未在 120 天内最后修改的 blob。
这里的问题是:它会(递归地)检查容器下的每个 blob 并仅删除 120 天内未最后修改的 blob,还是仅在容器级别检查上次修改日期并删除所有 blob?
我们这边的观察:它只是删除了容器下的所有 blob,尽管最近添加了一些 blob。 它不检查 blob 级别上次修改日期。
期望/要求:规则应该针对容器下的所有 blob 运行,并且应该只删除 120 天内未最后修改的 blob,而不是容器下的所有 blob。
规则
{
"enabled": true,
"name": "120dayfilter",
"type": "Lifecycle",
"definition": {
"actions": {
"baseBlob": {
"delete": {
"daysAfterModificationGreaterThan": 120
}
}
},
"filters": {
"blobTypes": [
"blockBlob"
],
"prefixMatch": [
"container1",
"container2"
]
}
}
}
我尝试在我的环境中重现相同的内容,并成功获得了结果:
尝试提供前缀,因为您的策略是删除容器下的所有 blob,而不考虑上次修改日期。
要解决此问题,请应用如下规则:
{
"rules": [
{
"enabled": true,
"name": "rule1",
"type": "Lifecycle",
"definition": {
"actions": {
"baseBlob": {
"delete": {
"daysAfterModificationGreaterThan": 7
}
},
"filters": {
"blobTypes": [
"blockBlob"
],
"prefixMatch": [
"container1/ab,nat,get,di"
]
}
}
}
]
注意: For each rule you can give up to 10 case-sensitive prefixes and upto 10 blob index tag conditions.
您可以添加 blob 的公共前缀,如下所示:
代码查看:
您可以使用前缀或 blob 索引匹配在规则中使用过滤器 blob。 在某些区域,blob 索引功能可用于公共预览。 这基本上只是一个标签,可以通过本机 Azure 存储搜索找到,不像您可能在 blob 上拥有的元数据标签。
参考资料:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.