【问题标题】:get a list of containers in the storage account获取存储帐户中的容器列表
【发布时间】:2019-06-27 17:49:48
【问题描述】:

用代码:

CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
                CloudConfigurationManager.GetSetting("<storageaccountname>_AzureStorageConnectionString"));
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("test-blob-container");

我可以访问 Blob 容器“test-blob-container”。但是有没有办法获取存储帐户中的容器列表?

问候 斯蒂芬

【问题讨论】:

    标签: c# asp.net azure azure-blob-storage


    【解决方案1】:

    .NET Core 库不支持ListContainers() 方法,这是设计使然,因为它不是异步方法,但您仍然可以利用ListContainersSegmentedAsync() 列出 .NET Core 库中的 blob 容器:

    var blobClient = storageAccount.CreateCloudBlobClient();
    var blobContainers = new List<CloudBlobContainer>();
    BlobContinuationToken blobContinuationToken = null;
    do
    {
        var containerSegment = await blobClient.ListContainersSegmentedAsync(blobContinuationToken);
        blobContainers.AddRange(containerSegment.Results);
        blobContinuationToken = containerSegment.ContinuationToken;
    } while (blobContinuationToken != null);
    

    与 REST API 一样,如果容器列表无法在一次 API 调用中完成,则返回分段结果和一个延续令牌。这就是为什么 ListContainersSegmentedAsync() 是 .NET Core 中唯一剩下的方法 - 它是真正的异步方法,相当于一次 REST API 调用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-27
      • 2022-11-11
      • 2015-05-13
      • 2020-09-15
      • 1970-01-01
      • 2021-07-27
      • 2016-02-17
      相关资源
      最近更新 更多