Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
При перечислении контейнеров в учетной записи хранения Azure из кода можно указать ряд параметров для управления возвратом результатов из службы хранилища Azure. В этой статье показано, как перечислить контейнеры с помощью клиентской библиотеки службы хранилища Azure для .NET.
Prerequisites
- Подписка Azure — создайте бесплатную учетную запись.
- Учетная запись хранения Azure — создайте такую учетную запись.
- Последняя версия .NET SDK для вашей операционной системы. Обязательно получите пакет SDK, а не среду выполнения.
Настройка среды
Если у вас нет существующего проекта, в этом разделе показано, как настроить проект для работы с клиентской библиотекой Хранилище BLOB-объектов Azure для .NET. Ниже приведены шаги по установке пакета, добавлению using директив и созданию авторизованного клиентского объекта. Дополнительные сведения см. в статье «Начало работы с Azure Blob Storage и .NET».
Установка пакетов
В каталоге вашего проекта установите пакеты для клиентских библиотек Azure Blob Storage и Azure Identity с помощью команды dotnet add package. Пакет Azure.Identity необходим для подключений без пароля к службам Azure.
dotnet add package Azure.Storage.Blobs
dotnet add package Azure.Identity
Добавьте директивы using.
Добавьте эти using директивы в начало файла кода:
using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;
Для некоторых примеров кода в этой статье могут потребоваться дополнительные using директивы.
Создание клиентского объекта
Чтобы подключить приложение к хранилищу BLOB-объектов, создайте экземпляр BLOBServiceClient. В следующем примере показано, как создать клиентский объект с помощью DefaultAzureCredential авторизации:
public BlobServiceClient GetBlobServiceClient(string accountName)
{
BlobServiceClient client = new(
new Uri($"https://{accountName}.blob.core.windows.net"),
new DefaultAzureCredential());
return client;
}
Вы можете зарегистрировать клиент службы для внедрения зависимостей в приложении .NET.
Вы также можете создавать клиентские объекты для определенных контейнеров или блобов. Дополнительные сведения о создании клиентских объектов и управлении ими см. в статье "Создание клиентских объектов и управление ими", взаимодействующих с ресурсами данных.
Authorization
Механизм авторизации должен иметь необходимые разрешения для доступа к списку контейнеров BLOB. Для авторизации с использованием Microsoft Entra ID (рекомендуется) требуется встроенная роль Azure RBAC Storage Blob Data Contributor или более высокая. Дополнительные сведения см. в руководстве по авторизации для контейнеров списка (REST API).
Сведения о параметрах перечисления контейнеров
При перечислении контейнеров из кода можно указать параметры для управления получением результатов из службы хранилища Azure. Можно указать число возвращаемых результатов в каждом наборе результатов, а затем извлечь последующие наборы. Вы также можете фильтровать результаты по префиксу и возвращать метаданные контейнера с результатами. Описание этих параметров приводится в следующих разделах.
Чтобы вывести список контейнеров в учетной записи хранения, вызовите один из следующих методов:
Эти методы возвращают список объектов BlobContainerItem . Контейнеры упорядочены лексографически по имени.
Управление количеством возвращаемых результатов
По умолчанию операция получения списка возвращает не более 5000 результатов за раз, но вы можете определить количество возвращаемых результатов для каждой операции получения списка. Примеры, представленные в этой статье, показывают, как возвращать результаты постранично. Дополнительные сведения о принципах разбиения на страницы см. в статье Разбиение на страницы с помощью пакета SDK Azure для .NET.
Фильтрация результатов с помощью префикса
Чтобы отфильтровать список контейнеров, укажите строку для параметра prefix. Строка префикса может содержать один или несколько символов. Служба хранилища Azure возвращает только те контейнеры, имена которых начинаются с этого префикса.
Включение метаданных контейнера
Чтобы включить метаданные контейнера с результатами, укажите Metadata значение перечисления типа BlobContainerTraits. служба хранилища Azure включает метаданные с каждым возвращенным контейнером, поэтому вам не нужно отдельно получить метаданные контейнера.
Включить удаленные контейнеры
Чтобы включить мягко удаленные контейнеры с результатами, укажите значение из перечисления Deleted.
Пример кода: список контейнеров
В следующем примере асинхронно перечислены контейнеры в учетной записи хранения, начинающейся с указанного префикса. В примере перечислены контейнеры, которые начинаются с указанного префикса и возвращают указанное количество результатов при каждом вызове операции перечисления. Затем он использует маркер продолжения для получения следующего сегмента результатов. В примере также возвращаются метаданные контейнера с результатами.
async static Task ListContainers(BlobServiceClient blobServiceClient,
string prefix,
int? segmentSize)
{
try
{
// Call the listing operation and enumerate the result segment.
var resultSegment =
blobServiceClient.GetBlobContainersAsync(BlobContainerTraits.Metadata, prefix, default)
.AsPages(default, segmentSize);
await foreach (Azure.Page<BlobContainerItem> containerPage in resultSegment)
{
foreach (BlobContainerItem containerItem in containerPage.Values)
{
Console.WriteLine("Container name: {0}", containerItem.Name);
}
Console.WriteLine();
}
}
catch (RequestFailedException e)
{
Console.WriteLine(e.Message);
Console.ReadLine();
throw;
}
}
Resources
Дополнительные сведения о перечислении контейнеров с помощью клиентской библиотеки хранилища BLOB-объектов Azure для .NET см. в следующих ресурсах.
Операции REST API
Пакет SDK Azure для .NET содержит библиотеки, которые создаются на основе REST API Azure, что позволяет взаимодействовать с операциями REST API через знакомые парадигмы .NET. Методы клиентской библиотеки для перечисления контейнеров используют следующую операцию REST API:
- Список контейнеров (REST API)
Ресурсы клиентской библиотеки
См. также
Связанный контент
- Эта статья является частью руководства разработчика хранилища BLOB-объектов для .NET. Дополнительные сведения см. в полном списке статей руководства разработчика по созданию приложения .NET.