azure - 如何在azure存储位置创建子容器

标签 azure azure-storage azure-blob-storage

如何在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")

注意使用GetBlobDirectoryReferenceGetSubDirectory方法以及CloudBlobDirectory类型而不是CloudBlobContainer。这些提供了您可能正在寻找的遍历功能。

这应该可以帮助您入门。如果这不能回答您的问题,请告诉我:

[感谢Neil Mackenzie寻找灵感]

关于azure - 如何在azure存储位置创建子容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3183857/

相关文章:

Azure 存储 Blob CORS 错误

c# - 仅将特定 VM 用于 TFS 构建

c# - ServiceBusTrigger 选择错误的配置文件

azure - 更新 EKS kubernetes 集群代理池配置文件

python - 获取返回空字典的存储 blob 的属性

azure - GetBlockBlobReference 未提供文件夹路径详细信息

email - 使用azure servicebus对电子邮件进行排队

c# - 使用 C# SDK 定期刷新 Azure 存储帐户 key

azure - Blob 不可写

azure - Azure VM快照可以安全删除吗?