获取存储帐户中的容器列表

时间:2019-02-03 23:08:21

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

代码:

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

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

问候 斯蒂芬

1 个答案:

答案 0 :(得分:1)

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

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调用。