Создание контейнера BLOB-объектов с помощью Java
Большие двоичные объекты в службе хранилища Azure упорядочиваются в контейнеры. Прежде чем вы сможете отправить большой двоичный объект, сперва необходимо создать контейнер. В этой статье показано, как создать контейнеры с помощью клиентской библиотеки служба хранилища Azure для Java.
Необходимые компоненты
- Подписка Azure — создайте бесплатную учетную запись.
- Учетная запись хранения Azure — создайте такую учетную запись.
- Пакет средств разработки Java (JDK) версии 8 или более поздней версии (рекомендуется использовать версию 17 для оптимального взаимодействия)
- Apache Maven используется для управления проектами в этом примере
Настройка среды
Если у вас нет существующего проекта, в этом разделе показано, как настроить проект для работы с клиентской библиотекой Хранилище BLOB-объектов Azure для Java. Дополнительные сведения см. в статье "Начало работы с Хранилище BLOB-объектов Azure и Java".
Чтобы работать с примерами кода в этой статье, выполните следующие действия, чтобы настроить проект.
Примечание.
В этой статье используется средство сборки Maven для создания и запуска примера кода. Для работы с пакетами SDK Azure для Java есть и другие средства сборки, например Gradle.
Установка пакетов
Откройте файл pom.xml
в текстовом редакторе. Установите пакеты, включив файл BOM или включив прямую зависимость.
Добавление инструкций импорта
Добавьте следующие операторы import
:
import com.azure.storage.blob.*;
Авторизация
Механизм авторизации должен иметь необходимые разрешения для создания контейнера. Для авторизации с помощью идентификатора Microsoft Entra (рекомендуется), требуется встроенный участник данных хранилища BLOB-объектов хранилища ролей или более поздней версии. Дополнительные сведения см. в руководстве по авторизации для создания контейнера (REST API).
Создание клиентского объекта
Чтобы подключить приложение к хранилищу BLOB-объектов, создайте экземпляр BLOBServiceClient.
В следующем примере используется BLOBServiceClientBuilder для создания BlobServiceClient
объекта с помощью DefaultAzureCredential
и показано, как создать клиенты контейнеров и BLOB-объектов при необходимости:
// Azure SDK client builders accept the credential as a parameter
// TODO: Replace <storage-account-name> with your actual storage account name
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
.endpoint("https://<storage-account-name>.blob.core.windows.net/")
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
// If needed, you can create a BlobContainerClient object from the BlobServiceClient
BlobContainerClient containerClient = blobServiceClient
.getBlobContainerClient("<container-name>");
// If needed, you can create a BlobClient object from the BlobContainerClient
BlobClient blobClient = containerClient
.getBlobClient("<blob-name>");
Дополнительные сведения о создании клиентских объектов и управлении ими см. в статье "Создание клиентских объектов и управление ими", взаимодействующих с ресурсами данных.
О именовании контейнеров
Имя контейнера должно быть допустимым DNS-именем, поскольку оно является частью уникального URI, используемого для адресации контейнера или его больших двоичных объектов. При присвоении имени контейнеру следуйте нижеприведенным правилам:
- Имена контейнеров могут содержать от 3 до 63 символов.
- Имена контейнеров должны начинаться с буквы или цифры и могут содержать только строчные буквы, цифры и тире (-).
- Последовательные символы дефиса не допускаются в именах контейнеров.
URI для ресурса контейнера форматируется следующим образом:
https://my-account-name.blob.core.windows.net/my-container-name
Создание контейнера
Чтобы создать контейнер, вызовите один из следующих методов из BlobServiceClient
класса:
Вы также можете создать контейнер с помощью одного из следующих методов из BlobContainerClient
класса:
Контейнеры создаются для учетной записи хранилища немедленно. Нельзя вложить один контейнер в другой. create
Для методов createBlobContainer
создается исключение, если контейнер с тем же именем уже существует.
В следующем примере создается контейнер из BlobServiceClient
объекта:
public BlobContainerClient createContainer(BlobServiceClient blobServiceClient, String containerName) {
// Create the container using the service client object
BlobContainerClient blobContainerClient = blobServiceClient.createBlobContainer(containerName);
return blobContainerClient;
}
Создание корневого контейнера
Корневой контейнер является контейнером по умолчанию для вашей учетной записи хранения. У каждой учетной записи хранения может быть один корневой контейнер, который должен называться $root. Корневой контейнер должен быть явным образом создан или удален.
Вы можете ссылаться на большой двоичный объект, хранящийся в корневом контейнере, не включая имя корневого контейнера. Корневой контейнер позволяет ссылаться на большой двоичный объект на верхнем уровне иерархии учетной записи хранения. К примеру, вы можете ссылаться на большой двоичный объект, находящийся в корневом контейнере, следующим образом:
https://accountname.blob.core.windows.net/default.html
В следующем примере создается новый BlobContainerClient
объект с именем контейнера $root, а затем создается контейнер, если он еще не существует в учетной записи хранения:
public void createRootContainer(BlobServiceClient blobServiceClient) {
// Creates a new BlobContainerClient object by appending the containerName to
// the end of the URI
BlobContainerClient blobContainerClient = blobServiceClient.getBlobContainerClient("$root");
// If the container does not already exist, create it using the container client
blobContainerClient.createIfNotExists();
}
Ресурсы
Дополнительные сведения о создании контейнера с помощью клиентской библиотеки Хранилище BLOB-объектов Azure для Java см. в следующих ресурсах.
Примеры кода
Операции REST API
Пакет SDK Azure для Java содержит библиотеки, которые создаются на основе REST API Azure, что позволяет взаимодействовать с операциями REST API через знакомые парадигмы Java. Методы клиентской библиотеки для создания контейнера используют следующую операцию REST API:
- Создание контейнера (REST API)
Ресурсы клиентской библиотеки
Связанный контент
- Эта статья является частью руководства разработчика хранилища BLOB-объектов для Java. Дополнительные сведения см. в полном списке статей руководства разработчика по созданию приложения Java.