如何解决使用 Azure.Storage.Blobs 删除目录中的所有 blob
我正在将我的代码重构为 Azure.Storage.Blobs,因为 windowsAzure.Storage 已被弃用。但是我还没有找到删除“directoty”的方法。在旧库中,您可以执行以下操作:
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(Config.StorageConnStr);
CloudStorageAccount account = CloudStorageAccount.Parse(StorageConnection);
CloudBlobClient blobClient = account.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference(ExportContainerName);
CloudBlobDirectory folder = container.GetDirectoryReference(jobid.ToLower());
var blobs = folder.ListBlobs();
foreach (var blob in blobs)
{
((CloudBlob)blob).DeleteIfExists();
}
但是我看不到任何与新包类似的代码。有什么指点吗?
解决方法
您可以使用 GetBlobsByHierarchy 方法在您的目录中list blobs,然后删除它们。
请参考我的代码:
BlobServiceClient blobServiceClient = new BlobServiceClient(connectionString);
BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient(containerName);
var resultSegment = containerClient.GetBlobsByHierarchy(BlobTraits.None,BlobStates.None,"/","frankfolder/").AsPages(default,100);
foreach (Azure.Page<BlobHierarchyItem> blobPage in resultSegment)
{
foreach (BlobHierarchyItem blobhierarchyItem in blobPage.Values)
{
Console.WriteLine("Blob name: {0}",blobhierarchyItem.Blob.Name);
containerClient.DeleteBlob(blobhierarchyItem.Blob.Name);
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。