代码:
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
CloudConfigurationManager.GetSetting("<storageaccountname>_AzureStorageConnectionString"));
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("test-blob-container");
我可以访问Blob容器“ test-blob-container”。但是,有没有一种方法可以获取存储帐户中的容器列表?
问候 斯蒂芬
答案 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调用。