Azure容器的保留策略?

时间:2016-08-12 18:05:19

标签: azure azure-storage azure-storage-blobs

我正在寻找为我的某个容器设置策略,以便删除或仅保留x天的数据。因此,如果x为30,则该容器应仅包含少于30天的文件。如果文件在容器中放置超过30天,则应将其丢弃。有什么办法可以配置吗?

2 个答案:

答案 0 :(得分:3)

Azure Blob存储目前不支持此类事情。您需要编写自己的东西,定期运行以执行此检查并删除旧blob。

另一方面,此功能一直悬而未决(自2011年起):https://feedback.azure.com/forums/217298-storage/suggestions/2474308-provide-time-to-live-feature-for-blobs

<强>更新

如果您需要自己动手,有两件事需要考虑:

  1. 用于获取blob列表的代码,找出需要删除的blob然后删除这些blob。为此,您可以使用Azure Storage SDK。 Azure Storage SDK可用于许多编程语言,如.Net,Java,Node,PHP等。您只需使用您熟悉的编程语言。
  2. 安排此代码每天运行一次:为此,您可以使用Azure中提供的众多服务之一。您可以使用Azure WebJobs,功能,计划,Azure自动化等。
  3. 如果您决定使用Azure自动化,那么您可以使用已经可以使用的Runbook(无需编写代码)。您可以在此处找到有关此内容的更多详细信息:https://gallery.technet.microsoft.com/scriptcenter/Remove-Storage-Blobs-that-aae4b761

答案 1 :(得分:0)

Azure Blob存储生命周期(预览)现已可用,并使用它来创建具有不同规则的策略。

这是删除超过30天的Blob的规则

 {
  "version": "0.5",
  "rules": [
    {
      "name": "expirationRule",
      "type": "Lifecycle",
      "definition": {
        "filters": {
          "blobTypes": [ "blockBlob" ]
        },
        "actions": {
          "baseBlob": {
            "delete": { "daysAfterModificationGreaterThan": 30}
          }
        }
      }
    }
  ]
}

有关更多详细信息,请参阅此Azure Blob storage Lifecycle