繁体   English   中英

Azure 容器删除所有 blob 的存储帐户 V2 生命周期管理

[英]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 上拥有的元数据标签。

参考资料

配置生命周期管理策略 - Azure 存储 | 微软学习

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM