Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве показано, как загружать и считывать данные из блобов контейнеров в учетной записи хранилища Azure Blob с помощью приложения Spring Boot.
Azure Blob Storage — это решение хранилища объектов Майкрософт для облака. Хранилище BLOB-объектов оптимизировано для хранения большого количества неструктурированных данных, таких как текстовые или двоичные данные.
Предварительные требования
- Подписка Azure — создать бесплатно.
- Java Development Kit (JDK) версии 8 или более поздней.
- Apache Maven версии 3.0 или более поздней.
- cURL или подобная служебная HTTP-программа, с помощью которой можно протестировать функциональные возможности.
- Учетная запись хранения Azure и контейнер. Если у вас нет учетной записи хранения, создайте учетную запись хранения.
- Приложение Spring Boot. Если у вас его нет, создайте проект Maven, используя Spring Initializr. Обязательно выберите Maven Project и в разделе Dependencies добавьте Spring Web и выберите Java версии 8 или более поздней.
Примечание.
Чтобы предоставить вашей учетной записи доступ к ресурсам, в вашей новой учетной записи Azure Storage назначьте роль Storage Blob Data Contributor учетной записи Microsoft Entra, которую вы используете. Дополнительные сведения см. в разделе Назначение ролей Azure с помощью портала Azure.
Внимание
Для выполнения действий, описанных в этом руководстве, требуется Spring Boot версии 2.5 или более поздней.
Создание контейнера
Сначала создайте контейнер с именем testcontainer, следуя инструкциям в Quickstart: Отправка, скачивание и перечисление больших двоичных объектов с помощью портала Azure.
Загрузка и чтение BLOBов из контейнера учетной записи Azure Storage
Теперь, когда у вас есть учетная запись и контейнер Azure Storage, вы можете отправлять и считывать файлы из больших двоичных объектов с помощью Spring Cloud Azure.
Чтобы установить модуль Spring Cloud Azure Storage Blob Starter, добавьте следующие зависимости в файл pom.xml:
Список компонентов (BOM) Spring Cloud для Azure
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>7.1.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>Примечание.
Если вы используете Spring Boot 4.0.x, обязательно установите версию, указанную в
spring-cloud-azure-dependencies, на значение7.1.0.Если вы используете Spring Boot 3.5.x, обязательно задайте версию
spring-cloud-azure-dependenciesна6.1.0.Если вы используете Spring Boot 3.1.x-3.5.x, обязательно установите для нее версию
spring-cloud-azure-dependenciesна5.25.0.Если вы используете Spring Boot 2.x, обязательно установите версию
spring-cloud-azure-dependenciesна4.20.0.Эта ведомость материалов (BOM) должна быть сконфигурирована в
<dependencyManagement>разделе файла pom.xml. Это гарантирует, что все зависимости Spring Cloud Azure используют одну и ту же версию.Дополнительные сведения о версии, используемой для этого BOM, можно найти в разделе Какую версию Spring Cloud Azure мне следует использовать?.
Артефакт Spring Cloud Azure Storage Blob Starter:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-storage-blob</artifactId> </dependency>
Написание кода приложения
Чтобы загружать и считывать файлы из объектов BLOB с помощью стартера Spring Cloud Azure Storage Blob, настройте приложение, выполнив следующие действия.
Настройте имя учетной записи хранения и конечную точку в файле конфигурации application.properties , как показано в следующем примере.
spring.cloud.azure.storage.blob.account-name=${AZURE_STORAGE_ACCOUNT_NAME} spring.cloud.azure.storage.blob.endpoint=${AZURE_STORAGE_ACCOUNT_ENDPOINT}Создайте класс
BlobControllerJava, как показано в следующем примере. Этот класс используется для загрузки и чтения файлов из контейнерного блоба в учетной записи Azure Storage.package com.example.demo; import org.springframework.beans.factory.annotation.Value; import org.springframework.core.io.Resource; import org.springframework.core.io.WritableResource; import org.springframework.util.StreamUtils; import org.springframework.web.bind.annotation.*; import java.io.IOException; import java.io.OutputStream; import java.nio.charset.Charset; @RestController @RequestMapping("blob") public class BlobController { @Value("azure-blob://testcontainer/test.txt") private Resource blobFile; @GetMapping("/readBlobFile") public String readBlobFile() throws IOException { return StreamUtils.copyToString( this.blobFile.getInputStream(), Charset.defaultCharset()); } @PostMapping("/writeBlobFile") public String writeBlobFile(@RequestBody String data) throws IOException { try (OutputStream os = ((WritableResource) this.blobFile).getOutputStream()) { os.write(data.getBytes()); } return "file was updated"; } }Совет
В этом руководстве нет операций проверки подлинности в конфигурациях или коде. Однако для подключения к службам Azure требуется проверка подлинности. Чтобы завершить проверку подлинности, необходимо использовать удостоверение Azure. Spring Cloud Azure использует
DefaultAzureCredential, который предоставляет библиотека идентификации Azure, чтобы помочь вам получить учетные данные без каких-либо изменений кода.DefaultAzureCredentialподдерживает несколько методов проверки подлинности и определяет, какой метод следует использовать во время выполнения. Этот подход позволяет приложению использовать различные методы проверки подлинности в разных средах (например, локальных и рабочих средах), не реализуя код, зависящий от среды. Дополнительные сведения см. в разделе DefaultAzureCredential.Для выполнения проверки подлинности в локальных средах разработки можно использовать Azure CLI, Visual Studio Code, PowerShell или другие методы. Дополнительные сведения см. в разделе Аутентификация Azure в средах разработки на Java. Чтобы завершить проверку подлинности в средах размещения Azure, рекомендуется использовать управляемое удостоверение, назначаемое пользователем. Дополнительные сведения см. в разделе Управляемые удостоверения для ресурсов Azure.
После запуска приложения используйте
curlдля тестирования приложения, выполнив следующие действия.Отправьте запрос POST для обновления содержимого файла с помощью следующей команды:
curl http://localhost:8080/blob/writeBlobFile -d "new message" -H "Content-Type: text/plain"Вы увидите ответ, который говорит
file was updated.Отправьте запрос GET, чтобы проверить содержимое файла с помощью следующей команды:
curl -X GET http://localhost:8080/blob/readBlobFileВы должны увидеть текст "новое сообщение", который вы опубликовали.
Развертывание в Azure Spring Apps
Теперь, когда у вас есть приложение Spring Boot, работающее локально, пришло время переместить его в рабочую среду. Azure Spring Apps упрощает развертывание приложений Spring Boot для Azure без каких-либо изменений кода. Эта служба управляет инфраструктурой приложений Spring, благодаря чему разработчики могут сосредоточиться на коде. Azure Spring Apps обеспечивает управление жизненным циклом с помощью комплексного мониторинга и диагностики, управления конфигурацией, обнаружения служб, интеграции CI/CD, развертывания по схеме blue-green и многого другого. Чтобы развернуть ваше приложение в Azure Spring Apps, см. статью Развертывание первого приложения в Azure Spring Apps.
Следующие шаги
Чтобы узнать больше о Spring и Azure, перейдите в Центр документации по Spring на Azure.
См. также
Дополнительные сведения о стартеры Spring Boot, доступных на платформе Microsoft Azure, см. в разделе Что такое Spring Cloud Azure?.
Дополнительные сведения о дополнительных API-интерфейсах хранилища Azure, которые можно вызвать из приложений Spring Boot, см. в следующих статьях: