Azure BLOB存储生命周期管理-附加Blob与块Blob

时间:2020-04-20 11:33:41

标签: azure azure-storage azure-blob-storage

我意识到Azure Blob存储生命周期管理仅支持块​​Blob。它不支持Append或Page Blob。

我们正在考虑的解决方案是-粗略地进行-从逻辑应用程序或函数应用程序枚举每个容器中的blob,并根据类似于Azure的存储生命周期管理的某些规则(例如,修改日期)删除已经n天了。

有人有清理存储的类似要求吗?有人可以建议一种更好的方法来实现这一点吗?

非常感谢。

谢谢 阿萨杜

1 个答案:

答案 0 :(得分:0)

我唯一想到的就是创建一个计时器触发功能应用程序或webjob。

以下是示例:

Blob存储软件包:Microsoft.Azure.Storage.Blob, version 11.1.3

示例代码:

    static void Main(string[] args)
    {
        var connection_str = "xxxxx";
        CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connection_str);
        CloudBlobClient cloudBlobClient=storageAccount.CreateCloudBlobClient();

        //list all the containers
        var containers = cloudBlobClient.ListContainers();


        foreach (var container in containers)
        {
            Console.WriteLine(container.Name);

            //find blobs whose type is CloudAppendBlob
            var blobs = container.ListBlobs("", useFlatBlobListing: true).OfType<CloudAppendBlob>();


            if (blobs.ToList().Count() <=0) continue;

            foreach (var blob in blobs)
            {
                Console.WriteLine($"blob name is {blob.Name}");

                //add your own logic here
                //if condition use blob.Properties.LastModified

                blob.Delete();
            }
        }

   }

希望有帮助。