首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何列出azure blob存储中的容器?

如何列出azure blob存储中的容器?
EN

Stack Overflow用户
提问于 2011-12-11 02:09:11
回答 4查看 13.6K关注 0票数 12

我正在开发一个社交网络应用程序。

我想在azure存储中为每个加入社交网络的用户(客户端)创建一个容器,这意味着user1有一个名为container 1的容器,在容器1中将有一个xml格式的用户1个人资料和用户1的个人资料图片。

类似地,对于user2,将在azure blob存储中创建容器2,然后将用户2的配置文件保存为xml格式和用户2的配置文件图片,假设对于10个用户,将有10个容器。

如果我想要列出存储在Azure存储中的所有9个用户的信息,这些信息存储在来自用户客户端1的不同9个容器中,我该如何做到?

我正在使用webservice,但我面临的挑战是如何收集位于9个不同容器中的所有9个用户配置文件信息。

EN

回答 4

Stack Overflow用户

发布于 2011-12-11 04:17:11

下面的代码应该可以解决这个问题-

代码语言:javascript
运行
复制
            CloudStorageAccount account =
            CloudStorageAccount.FromConfigurationSetting("DataConnectionString");
        // We need to access blobs now, so create a CloudBlobClient
        CloudBlobClient blobClient = account.CreateCloudBlobClient();

        IEnumerable<CloudBlobContainer> containers = blobClient.ListContainers();
票数 43
EN

Stack Overflow用户

发布于 2018-07-14 04:21:35

对于较新版本的Microsoft.WindowsAzure.Storage,,使用CloudBlobClient.ListContainersSegmentedAsync方法的正确变体。示例用法如下:

代码语言:javascript
运行
复制
private static async Task<IEnumerable<CloudBlobContainer>> ListContainersAsync(CloudBlobClient cloudBlobClient)
{
    BlobContinuationToken continuationToken = null;
    var containers = new List<CloudBlobContainer>();

    do
    {
        ContainerResultSegment response = await cloudBlobClient.ListContainersSegmentedAsync(continuationToken);
        continuationToken = response.ContinuationToken;
        containers.AddRange(response.Results);

    } while (continuationToken != null);

    return containers;
}

上述方法的用法如下:

代码语言:javascript
运行
复制
string connectionString = "<your connection string>";
CloudStorageAccount.TryParse(connectionString, out CloudStorageAccount storageAccount);

if (storageAccount == null)
{
    Console.WriteLine("Connection string did not work");
}

CloudBlobClient cloudBlobClient = storageAccount.CreateCloudBlobClient();
var containers = await ListContainersAsync(cloudBlobClient);

或者,您可以创建一个扩展方法,如下所示:

代码语言:javascript
运行
复制
public static class CloudBlobClientExtension
{
    public static async Task<IEnumerable<CloudBlobContainer>> ListContainersAsync(this CloudBlobClient cloudBlobClient)
    {
        BlobContinuationToken continuationToken = null;
        var containers = new List<CloudBlobContainer>();

        do
        {
            ContainerResultSegment response = await cloudBlobClient.ListContainersSegmentedAsync(continuationToken);
            continuationToken = response.ContinuationToken;
            containers.AddRange(response.Results);

        } while (continuationToken != null);

        return containers;
    }
}

上述扩展方法的用法如下:

代码语言:javascript
运行
复制
string connectionString = "<your connection string>";
CloudStorageAccount.TryParse(connectionString, out CloudStorageAccount storageAccount);

if (storageAccount == null)
{
    Console.WriteLine("Connection string did not work");
}

CloudBlobClient cloudBlobClient = storageAccount.CreateCloudBlobClient();
IEnumerable<CloudBlobContainer> containers = await cloudBlobClient.ListContainersAsync();

有关更多详细信息,请参阅MSDNBalkan's Blog

对于较旧的Azure存储版本,请使用CloudBlobClient.ListContainers方法。示例用法如下:

代码语言:javascript
运行
复制
string connectionString = "<your connection string>";
CloudStorageAccount.TryParse(connectionString, out CloudStorageAccount storageAccount);

if (storageAccount == null)
{
    Console.WriteLine("Connection string did not work");
}

CloudBlobClient cloudBlobClient = storageAccount.CreateCloudBlobClient();
var containers = cloudBlobClient.ListContainers();
票数 12
EN

Stack Overflow用户

发布于 2017-10-26 19:03:28

代码语言:javascript
运行
复制
CloudStorageAccount account =
    CloudStorageAccount.FromConfigurationSetting("DataConnectionString");

// We need to access blobs now, so create a CloudBlobClient
var blobClient = account.CreateCloudBlobClient();

IEnumerable<CloudBlobContainer> containers = blobClient.ListContainers();

// This will return you list of containers
var containerList = containers.Select(e => e.Name).Tolist(); 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8458720

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档