使用azure blob storage api删除整个目录

时间:2016-04-14 15:05:45

标签: azure azure-blob-storage

我以下列方式使用Azure对象存储:

我有一个容器,在它下面有许多目录结构中的blob。

我正在使用Azure Blob Storage api来管理它。

  • 有没有办法删除整个目录?
  • 我是否真的需要列出其下的所有blob然后逐个删除它们?
  • 是否有一种解决方法,例如删除所有具有相同uri前缀的blob(再次,不列出它们然后逐个删除它们)?

2 个答案:

答案 0 :(得分:1)

我不知道是否有新的解决方案,但是我们使用https://msdn.microsoft.com/library/microsoft.windowsazure.storage.blob.cloudblobcontainer.listblobs.aspx做了 - 如果我们看到Fiddler发生了什么,只返回前缀修饰的blob。请查看这是否适合您:

static void GetBlobsByPrefix(string Container, string Prefix)
    {
        if (!string.IsNullOrEmpty(Prefix))
        {
            var _Container = GetBlobContainer(Container);
            var _Blobs = _Container.ListBlobs(Prefix, true);
            foreach (IListBlobItem blob in _Blobs)
            {

                 ....
            }
        }
    }

    static CloudBlobContainer GetBlobContainer(string container)
    {           

        CloudStorageAccount _StorageAccount = CloudStorageAccount.Parse(
            CloudConfigurationManager.GetSetting("rus_AzureStorageConnectionString"));

        CloudBlobClient _BlobClient = _StorageAccount.CreateCloudBlobClient();
        CloudBlobContainer _Container = _BlobClient.GetContainerReference(container);
        return _Container;
    }

答案 1 :(得分:0)

您可以删除容器,并删除所有blob。 Azure存储上的容器充当"文件夹"为你的blob。