Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce tutoriel vous montre comment télécharger et lire des objets blob de conteneur dans un compte de stockage d'objets blob Azure depuis une application Spring Boot.
Stockage Blob Azure est la solution de stockage d'objets de Microsoft pour le cloud. Le stockage Blob est optimisé pour stocker une grande quantité de données non structurées, telles que des fichiers texte ou des données binaires.
Prérequis
- Un abonnement Azure - créez-en un gratuitement.
- Java Kit de développement (JDK) version 8 ou ultérieure.
- Apache Maven, version 3.0 ou supérieure.
- cURL ou un utilitaire HTTP similaire pour tester la fonctionnalité.
- Un compte de stockage et un conteneur Azure. Si vous n’en avez pas, créez un compte de stockage.
- Une application Spring Boot. Si vous n’en avez pas, créez un projet Maven avec Spring Initializr. Veillez à sélectionner Maven Project et, sous Dependencies, ajoutez la dépendance Spring Web, puis sélectionnez Java version 8 ou ultérieure.
Remarque
Pour accorder à votre compte l'accès aux ressources, dans votre compte stockage Azure nouvellement créé, attribuez le rôle Storage Blob Data Contributor au compte Microsoft Entra que vous utilisez actuellement. Pour plus d’informations, consultez Assigner des rôles Azure à l’aide du portail Azure.
Importante
La version 2.5 ou supérieure de Spring Boot est nécessaire pour réaliser les étapes de ce tutoriel.
Créez un conteneur.
Tout d’abord, créez un conteneur nommé testcontainer en suivant les instructions de Quickstart : Charger, télécharger et répertorier des objets blob avec le portail Azure.
Charger et lire des blobs depuis un conteneur du compte stockage Azure
Maintenant que vous disposez d’un compte et d’un conteneur stockage Azure, vous pouvez charger et lire des fichiers à partir d’objets blob avec Spring Cloud Azure.
Pour installer le module Spring Cloud stockage Azure Blob Starter, ajoutez les dépendances suivantes à votre fichier pom.xml :
Le Spring Cloud Azure Bill of Materials (BOM) :
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>7.2.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>Remarque
Si vous utilisez Spring Boot 4.0.x, veillez à mettre la
spring-cloud-azure-dependenciesversion à7.2.0.Si vous utilisez Spring Boot 3.5.x, assurez-vous de définir la version
spring-cloud-azure-dependenciesà6.2.0.Si vous utilisez Spring Boot 3.1.x-3.5.x, veillez à définir la version
spring-cloud-azure-dependencies5.25.0.Si vous utilisez Spring Boot 2.x, assurez-vous de définir la version
spring-cloud-azure-dependenciessur4.20.0.Cette liste de matériel (BOM) doit être configurée dans la section
<dependencyManagement>de votre fichier pom.xml. Cela garantit que toutes les dépendances spring Cloud Azure utilisent la même version.Pour plus d’informations sur la version utilisée pour ce boM, consultez Which Version of Spring Cloud Azure Should I Use.
L'artéfact Starter Spring Cloud stockage Azure Blob :
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-storage-blob</artifactId> </dependency>
Coder l’application
Pour télécharger et lire des fichiers à partir de blobs à l’aide du starter Spring Cloud stockage Azure Blob, configurez l’application en procédant comme suit.
Configurez un nom de compte de stockage et un point de terminaison dans le fichier de configuration application.properties , comme illustré dans l’exemple suivant.
spring.cloud.azure.storage.blob.account-name=${AZURE_STORAGE_ACCOUNT_NAME} spring.cloud.azure.storage.blob.endpoint=${AZURE_STORAGE_ACCOUNT_ENDPOINT}Créez une classe
BlobControllerJava, comme illustré dans l’exemple suivant. Cette classe est utilisée pour charger et lire des fichiers à partir de l’objet blob de conteneur dans le compte stockage Azure.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"; } }Conseil
Dans ce tutoriel, il n'y a pas d'opérations d'authentification dans les configurations ou le code. Toutefois, la connexion à Azure services nécessite une authentification. Pour terminer l’authentification, vous devez utiliser Azure Identity. Spring Cloud Azure utilise
DefaultAzureCredential, que la bibliothèque Azure Identity fournit pour vous aider à obtenir des informations d’identification sans aucune modification du code.DefaultAzureCredentialprend en charge plusieurs méthodes d’authentification et détermine quelle méthode doit être utilisée au moment de l’exécution. Cette approche permet à votre application d'utiliser différentes méthodes d'authentification dans différents environnements (tels que les environnements locaux et de production) sans implémenter de code spécifique à l'environnement. Pour plus d’informations, consultez DefaultAzureCredential.Pour terminer l’authentification dans les environnements de développement locaux, vous pouvez utiliser Azure CLI, Visual Studio Code, PowerShell ou d’autres méthodes. Pour plus d’informations, consultez l’authentification Azure dans les environnements de développement Java. Pour terminer l’authentification dans Azure environnements d’hébergement, nous vous recommandons d’utiliser l’identité managée affectée par l’utilisateur. Pour plus d’informations, consultez Qu’est-ce que les identités managées pour les ressources Azure ?
Une fois que votre application fonctionne, utilisez
curlpour tester votre application en suivant les étapes suivantes.Envoyez une requête POST pour mettre à jour le contenu d’un fichier en utilisant la commande suivante :
curl http://localhost:8080/blob/writeBlobFile -d "new message" -H "Content-Type: text/plain"Vous devez obtenir la réponse suivante :
file was updated.Envoyez une requête GET pour vérifier le contenu du fichier en utilisant la commande suivante :
curl -X GET http://localhost:8080/blob/readBlobFileVous devez voir le texte « nouveau message » que vous avez publié.
Déployer sur Azure Spring Apps
Maintenant que l'application Spring Boot fonctionne localement, il est temps de la mettre en production. Azure Spring Apps facilite le déploiement d’applications Spring Boot sur Azure sans aucune modification du code. Le service gère l’infrastructure des applications Spring, ce qui permet aux développeurs de se concentrer sur leur code. Azure Spring Apps fournit une gestion du cycle de vie à l’aide de la supervision et des diagnostics complets, de la gestion de la configuration, de la découverte de services, de l’intégration CI/CD, des déploiements bleu-vert, etc. Pour déployer votre application sur Azure Spring Apps, consultez Deploy your first application to Azure Spring Apps.
Étapes suivantes
Pour en savoir plus sur Spring et Azure, passez au centre de documentation Spring on Azure.
Voir aussi
Pour plus d’informations sur les autres démarrages Spring Boot disponibles pour Microsoft Azure, consultez Qu’est-ce que Spring Cloud Azure ?
Pour plus d’informations sur les API de stockage supplémentaires Azure que vous pouvez appeler à partir de vos applications Spring Boot, consultez les articles suivants :