Azure存储生命周期管理删除追加blob不删除

标签 azure azure-storage azure-blob-storage

最近,Azure 存储生命周期管理支持追加 blob。我实现了在上次修改 20 天后删除特定容器中的所有项目。我关注了这个documentation 。但是我测试了几种方法,每次都等待超过48小时,还是没有删除blob。也许我忽略了一些事情。这是设置:

我有一个称为日志的 blob 容器。在日志中我有追加 Blob 。此容器中 20 多天前修改的所有内容都应删除。

enter image description here

这是我上次尝试的代码 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 policiesblob leased

2.确保您等待至少 24 小时。

3.出于测试目的,您可以创建一个新容器,上传一些追加 blob,然后设置生命周期管理规则以在 1 天后删除这些 blob。我在身边测试过,可以正常工作。

关于Azure存储生命周期管理删除追加blob不删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65720192/

相关文章:

azure - 在 Visual Studio 中本地使用 Azure 发布管道变量(调试时)

sql-server - 从 Azure SQL Server 数据库连接到 Azure 数据仓库实例的任何选项

python - 在Azure ML上开始训练模型

c# - 将文件从一个 Azure 存储帐户复制到另一个 Azure 存储帐户

azure - 您可以将流量管理器与 blob 存储或 Azure 功能结合使用吗

azure - 验证未对用户进行身份验证的应用程序中的Azure B2C token

asp.net-mvc - 在 MVC3 中下载 Azure Blob 文件

azure 虚拟机持久 SSD 警告 DATALOSS_WARNING_README.txt

Azure 生命周期管理规则

Azure Blob 触发器有时需要花费太多时间才能触发