如何在azure存储位置创建子容器?
最佳答案
Windows Azure 不提供层次容器的概念,但它确实提供了一种通过约定和 API 遍历层次结构的机制。所有容器均存放在同一层。您可以通过使用 Blob 名称的命名约定来获得类似的功能。
例如,您可以创建一个名为“content”的容器,并在该容器中创建具有以下名称的 blob:
content/blue/images/logo.jpg
content/blue/images/icon-start.jpg
content/blue/images/icon-stop.jpg
content/red/images/logo.jpg
content/red/images/icon-start.jpg
content/red/images/icon-stop.jpg
请注意,这些 blob 是针对“内容”容器的平面列表。也就是说,使用“/”作为常规分隔符,为您提供了以分层方式遍历这些分隔符的功能。
protected IEnumerable<IListBlobItem>
GetDirectoryList(string directoryName, string subDirectoryName)
{
CloudStorageAccount account =
CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
CloudBlobClient client =
account.CreateCloudBlobClient();
CloudBlobDirectory directory =
client.GetBlobDirectoryReference(directoryName);
CloudBlobDirectory subDirectory =
directory.GetSubdirectory(subDirectoryName);
return subDirectory.ListBlobs();
}
然后您可以按如下方式调用它:
GetDirectoryList("content/blue", "images")
注意使用GetBlobDirectoryReference和GetSubDirectory方法以及CloudBlobDirectory类型而不是CloudBlobContainer强>。这些提供了您可能正在寻找的遍历功能。
这应该可以帮助您入门。如果这不能回答您的问题,请告诉我:
[感谢Neil Mackenzie寻找灵感]
关于azure - 如何在azure存储位置创建子容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3183857/