我意识到Azure Blob存储生命周期管理仅支持块Blob。它不支持Append或Page Blob。
我们正在考虑的解决方案是-粗略地进行-从逻辑应用程序或函数应用程序枚举每个容器中的blob,并根据类似于Azure的存储生命周期管理的某些规则(例如,修改日期)删除已经n天了。
有人有清理存储的类似要求吗?有人可以建议一种更好的方法来实现这一点吗?
非常感谢。
谢谢 阿萨杜
答案 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();
}
}
}
希望有帮助。