Вывод списка контейнеров BLOB-объектов с помощью Java
При перечислении контейнеров в учетной записи служба хранилища Azure из кода можно указать несколько вариантов управления возвратом результатов из служба хранилища Azure. В этой статье показано, как перечислить контейнеры с помощью клиентской библиотеки служба хранилища Azure для Java.
Необходимые компоненты
- В этой статье предполагается, что у вас уже есть проект, настроенный для работы с клиентской библиотекой Хранилище BLOB-объектов Azure для Java. Сведения о настройке проекта, включая установку пакетов, добавление
import
директив и создание авторизованного клиентского объекта, см. в статье "Начало работы с служба хранилища Azure и Java". - Механизм авторизации должен иметь разрешения для перечисления контейнеров BLOB-объектов. Дополнительные сведения см. в руководстве по авторизации для следующей операции REST API:
Сведения о параметрах перечисления контейнеров
При перечислении контейнеров из кода можно указать параметры для управления возвратом результатов из служба хранилища Azure. Можно указать число возвращаемых результатов в каждом наборе результатов, а затем извлечь последующие наборы. Вы также можете фильтровать результаты по префиксу и возвращать метаданные контейнера с результатами. Описание этих параметров приводится в следующих разделах.
Чтобы перечислить контейнеры в учетной записи хранения, вызовите следующий метод:
Этот метод возвращает итератор типа BlobContainerItem. Контейнеры упорядочены лексографически по имени.
Управление количеством возвращаемых результатов
По умолчанию операция перечисления возвращает до 5000 результатов за раз. Чтобы вернуть меньший набор результатов, укажите ненулевое значение размера возвращаемой страницы результатов. Это значение можно задать с помощью следующего метода:
Представленные в этой статье примеры демонстрируют постраничное получение результатов. Дополнительные сведения о концепциях разбиения на страницы см. в статье "Разбиение на страницы" с помощью пакета SDK Azure для Java.
Фильтрация результатов с помощью префикса
Чтобы отфильтровать список контейнеров, укажите строку для параметра prefix
. Строка префикса может содержать один или несколько символов. Служба хранилища Azure возвращает только те контейнеры, имена которых начинаются с этого префикса. Это значение можно задать с помощью следующего метода:
Включение метаданных контейнера
Чтобы включить метаданные контейнера с результатами, создайте BlobContainerListDetails
экземпляр и передайте true
следующий метод:
Затем передайте объект в BlobContainerListDetails
следующий метод:
Включение удаленных контейнеров
Чтобы включить обратимо удаленные контейнеры с результатами, создайте BlobContainerListDetails
экземпляр и передайте true
следующий метод:
Затем передайте объект в BlobContainerListDetails
следующий метод:
Примеры кода
В следующем примере перечислены контейнеры и фильтруется результаты по указанному префиксу:
public void listContainers(BlobServiceClient blobServiceClient) {
// Set a prefix to filter results based on a specified character or string
ListBlobContainersOptions options = new ListBlobContainersOptions()
.setPrefix("container-");
System.out.println("List containers:");
for (BlobContainerItem blobContainerItem : blobServiceClient.listBlobContainers(options, null)) {
System.out.printf("Container name: %s%n", blobContainerItem.getName());
}
}
Можно также вернуть меньший набор результатов, указав размер страницы результатов для возврата:
public void listContainersWithPaging(BlobServiceClient blobServiceClient) {
// Set a prefix to filter results and specify a page limit
ListBlobContainersOptions options = new ListBlobContainersOptions()
.setMaxResultsPerPage(2) // Low number for demonstration purposes
.setPrefix("container-");
int i = 0;
Iterable<PagedResponse<BlobContainerItem>> blobContainerPages = blobServiceClient
.listBlobContainers(options, null).iterableByPage();
for (PagedResponse<BlobContainerItem> page : blobContainerPages) {
System.out.printf("Page %d%n", ++i);
page.getElements().forEach(container -> {
System.out.printf("Name: %s%n", container.getName());
});
}
}
Ресурсы
Дополнительные сведения о перечислении контейнеров с помощью клиентской библиотеки Хранилище BLOB-объектов Azure для Java см. в следующих ресурсах.
Операции REST API
Пакет SDK Azure для Java содержит библиотеки, которые создаются на основе REST API Azure, что позволяет взаимодействовать с операциями REST API через знакомые парадигмы Java. Методы клиентской библиотеки для перечисления контейнеров используют следующую операцию REST API:
- Список контейнеров (REST API)