【发布时间】:2016-08-06 05:48:46
【问题描述】:
我正在以下列方式使用 Azure 对象存储:
我有一个容器,在它下面的目录结构中有许多 blob。
我正在使用 Azure Blob Storage api 来管理它。
- 有没有办法删除整个目录?
- 真的需要把它下面的所有blob都列出来,然后一一删除吗?
- 是否有一种解决方法,例如删除具有相同 uri 前缀的所有 blob(同样,不列出它们,然后一一删除)?
【问题讨论】:
我正在以下列方式使用 Azure 对象存储:
我有一个容器,在它下面的目录结构中有许多 blob。
我正在使用 Azure Blob Storage api 来管理它。
【问题讨论】:
我不知道是否有新的解决方案,但我们使用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;
}
【讨论】:
您可以删除容器,您的所有 blob 都将被删除。 Azure 存储上的容器充当 Blob 的“文件夹”。
【讨论】: