получить список контейнеров в учетной записи хранения - PullRequest
0 голосов
/ 04 февраля 2019

с кодом:

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 голосов
/ 04 февраля 2019

ListContainers() метод не поддерживается в библиотеке .NET Core, что является конструктивным, поскольку он не является асинхронным методом, но вы все равно можете использовать ListContainersSegmentedAsync() для отображения контейнеров BLOB-объектов в библиотеке .NET Core:

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.

...