Бөлісу құралы:


Начало работы с Хранилище BLOB-объектов Azure и Java

В этой статье показано, как подключиться к Хранилище BLOB-объектов Azure с помощью клиентской библиотеки Хранилище BLOB-объектов Azure для Java. После подключения код может работать в контейнерах, BLOB-объектах, функциях службы хранилища BLOB-объектов.

Примеры | исходного кода | библиотеки api reference | Package (Maven) | Library дают отзыв

Необходимые компоненты

Настройка проекта

Примечание.

В рамках этой статьи для сборки и запуска примера кода используется средство сборки Maven. Для работы с пакетами SDK Azure для Java есть и другие средства сборки, например Gradle.

Используйте Maven для создания нового консольного приложения или открытия существующего проекта. Выполните следующие действия, чтобы установить пакеты и добавить необходимые import директивы.

Установка пакетов

Откройте файл pom.xml в текстовом редакторе. Установите пакеты, включив файл BOM или включив прямую зависимость.

Включение BOM-файла

Добавьте azure-sdk-bom , чтобы получить зависимость от последней версии библиотеки. В следующем фрагменте кода замените {bom_version_to_target} заполнитель номером версии. Использование azure-sdk-bom позволяет указать версию каждой отдельной зависимости. Дополнительные сведения о BOM см. в статье BOM SDK azure README.

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-sdk-bom</artifactId>
            <version>{bom_version_to_target}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Добавьте приведенные ниже элементы зависимости в группу зависимостей. Зависимость удостоверений Azure необходима для бессерверных подключений к службам Azure.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-storage-blob</artifactId>
</dependency>
<dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-storage-common</artifactId>
</dependency>
<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
</dependency>

Включение прямой зависимости

Чтобы получить зависимость от конкретной версии библиотеки, добавьте прямую зависимость в проект:

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-storage-blob</artifactId>
    <version>{package_version_to_target}</version>
</dependency>
<dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-storage-common</artifactId>
      <version>{package_version_to_target}</version>
</dependency>
<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>{package_version_to_target}</version>
</dependency>

Включение директив импорта

Затем откройте файл кода и добавьте необходимые import директивы. В этом примере мы добавим в файл App.java следующие директивы:

import com.azure.core.credential.*;
import com.azure.identity.*;
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
import com.azure.storage.blob.specialized.*;
import com.azure.storage.common.*;

Сведения о клиентской библиотеке BLOB-объектов:

  • com.azure.storage.blob: содержит основные классы (клиентские объекты), которые можно использовать для работы со службой, контейнерами и большими двоичными объектами.
  • com.azure.storage.blob.models: содержит служебные классы, структуры и типы перечисления.
  • com.azure.storage.blob.specialized: содержит классы, которые можно использовать для выполнения операций, относящихся к типу BLOB-объектов (например, добавление больших двоичных объектов).

Авторизация доступа и подключения к хранилищу BLOB-объектов

Чтобы подключить приложение к хранилищу BLOB-объектов, создайте экземпляр класса BlobServiceClient . Вы также можете использовать класс BlobServiceAsyncClient для асинхронного программирования. Этот объект является отправной точкой для взаимодействия с ресурсами данных на уровне учетной записи хранения. Его можно использовать для работы с учетной записью хранения и ее контейнерами. Вы также можете использовать клиент службы для создания клиентов контейнеров или клиентов БОЛЬШИХ двоичных объектов в зависимости от ресурса, с которым требуется работать.

Дополнительные сведения о создании клиентских объектов и управлении ими см. в статье "Создание клиентских объектов и управление ими", взаимодействующих с ресурсами данных.

Вы можете авторизовать BlobServiceClient объект с помощью маркера авторизации Microsoft Entra, ключа доступа к учетной записи или подписанного URL-адреса (SAS). Для оптимальной безопасности корпорация Майкрософт рекомендует использовать идентификатор Microsoft Entra с управляемыми удостоверениями для авторизации запросов к данным BLOB-объектов. Дополнительные сведения см. в разделе "Авторизация доступа к BLOB-объектам" с помощью идентификатора Microsoft Entra.

Для авторизации с помощью идентификатора Microsoft Entra необходимо использовать субъект безопасности. Необходимый тип субъекта безопасности зависит от того, где выполняется приложение. Руководствуйтесь следующей таблицей.

Место выполнения приложения Субъект безопасности Руководство
Локальный компьютер (разработка и тестирование) Субъект-служба Сведения о регистрации приложения, настройке группы Microsoft Entra, назначении ролей и настройке переменных среды см. в статье "Авторизация доступа с помощью субъектов-служб разработчиков".
Локальный компьютер (разработка и тестирование) Удостоверение пользователя Сведения о настройке группы Microsoft Entra, назначении ролей и входе в Azure см. в статье "Авторизация доступа с помощью учетных данных разработчика".
Размещено в Azure Управляемое удостоверение Сведения о включении управляемого удостоверения и назначении ролей см. в статье "Авторизация доступа из размещенных в Azure приложений с помощью управляемого удостоверения".
Размещенные вне Azure (например, локальные приложения) Субъект-служба Сведения о регистрации приложения, назначении ролей и настройке переменных среды см. в статье "Авторизация доступа из локальных приложений с помощью субъекта-службы приложений"

Авторизация доступа с помощью DefaultAzureCredential

Простой и безопасный способ авторизации доступа и подключения к хранилищу BLOB-объектов — получить маркер OAuth, создав экземпляр DefaultAzureCredential . Затем можно использовать эти учетные данные для создания объекта BlobServiceClient .

Убедитесь, что у вас есть правильные зависимости в pom.xml и необходимые директивы импорта, как описано в разделе "Настройка проекта".

В следующем примере для создания BlobServiceClient объекта используется DefaultAzureCredentialBLOBServiceClientBuilder:

public static BlobServiceClient GetBlobServiceClientTokenCredential() {
    TokenCredential credential = new DefaultAzureCredentialBuilder().build();

    // 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(credential)
            .buildClient();

    return blobServiceClient;
}

Сборка приложения

При создании приложений для работы с ресурсами данных в Хранилище BLOB-объектов Azure код в основном взаимодействует с тремя типами ресурсов: учетными записями хранения, контейнерами и большими двоичными объектами. Дополнительные сведения об этих типах ресурсов, о том, как они связаны друг с другом и как приложения взаимодействуют с ресурсами, см. в статье "Общие сведения о взаимодействии приложений с ресурсами хранилища BLOB-объектов".

В следующих руководствах показано, как работать с ресурсами данных и выполнять определенные действия с помощью клиентской библиотеки служба хранилища Azure для Java:

Руководство Description
Создание контейнера Создание контейнеров.
Удаление и восстановление контейнеров Удаление контейнеров. Если включено обратимое удаление включено, восстановление удаленных контейнеров.
Перечисление контейнеров Перечисление контейнеров в учетной записи и различные параметры, доступные для настройки списка.
Управление свойствами и метаданными (контейнерами) Получение и задание свойств и метаданных для контейнеров.
Создание аренды контейнеров и управление ими Создайте блокировку контейнера и управляйте ею.
Создание аренды BLOB-объектов и управление ими Создайте блокировку большого двоичного объекта и управляйте ими.
отправка больших двоичных объектов; Отправка BLOB-объектов с помощью строк, потоков, путей к файлам и других методов.
скачивание больших двоичных объектов; Скачивание BLOB-объектов с помощью строк, потоков и путей к файлам.
Копирование больших двоичных объектов Скопируйте большой двоичный объект из одного расположения в другое.
Перечисление больших двоичных объектов Перечисление BLOB-объектов различными способами.
Удаление и восстановление Удаление BLOB-объектов. Если включено обратимое удаление, восстановление удаленных BLOB-объектов.
Поиск BLOB-объектов с помощью тегов Задание и извлечение тегов, а также использование тегов для поиска BLOB-объектов.
Управление свойствами и метаданными (BLOB-объектами) Получение и задание свойств и метаданных для BLOB-объектов.
Установка или изменение уровня доступа большого двоичного объекта Задайте или измените уровень доступа для блочного большого двоичного объекта.