【问题标题】:Deleting all blobs in a directory with Azure.Storage.Blobs使用 Azure.Storage.Blobs 删除目录中的所有 Blob
【发布时间】:2021-03-14 08:48:29
【问题描述】:

我正在将我的代码重构为 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();
}

但是我在新包中看不到任何类似的代码。有什么指点吗?

【问题讨论】:

    标签: azure-storage azure-blob-storage


    【解决方案1】:

    你可以使用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);
                    }
                }
    

    【讨论】:

      猜你喜欢
      • 2020-01-02
      • 1970-01-01
      • 2011-01-01
      • 2014-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-06
      • 2010-11-05
      相关资源
      最近更新 更多