Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
In deze zelfstudie leert u hoe u vanuit een Spring Boot-toepassing uploadt en leest vanuit container-blobs in een Azure Blob Storage-account.
Azure Blob Storage is de oplossing voor objectopslag van Microsoft voor de cloud. Blob Storage is geoptimaliseerd voor het opslaan van een enorme hoeveelheid ongestructureerde gegevens, zoals tekst of binaire gegevens.
Vereisten
- Een Azure-abonnement- gratis een abonnement maken.
- Java Development Kit (JDK) versie 8 of hoger.
- Apache Maven, versie 3.0 of hoger.
- cURL of een vergelijkbaar HTTP-hulpprogramma om de functionaliteit te testen.
- Een Azure-opslagaccount en -container. Als u er nog geen hebt, maakt u een opslagaccount.
- Een Spring Boot-toepassing. Als u er nog geen hebt, maakt u een Maven-project met de Spring Initializr. Selecteer Maven Project en voeg onder Dependencies de afhankelijkheid Spring Web toe en selecteer vervolgens Java versie 8 of hoger.
Notitie
Als u uw account toegang wilt verlenen tot resources, wijst u in uw zojuist gemaakte Azure Storage-account de rol Storage Blob Data Contributor toe aan het Microsoft Entra account dat u momenteel gebruikt. Voor meer informatie, zie Azure-rollen toewijzen met behulp van het Azure-portaal.
Belangrijk
Spring Boot versie 2.5 of hoger is vereist om de stappen in deze zelfstudie uit te voeren.
Een container maken
Maak eerst een container met de naam testcontainer door de instructies in Quickstart: blobs uploaden, downloaden en opsommen in de Azure-portal te volgen.
Blobs uploaden en lezen vanuit een Azure Storage-accountcontainer
Nu u een Azure Storage-account en container hebt, kunt u bestanden uploaden en lezen vanuit blobs met Spring Cloud Azure.
Als u de Spring Cloud Azure Storage Blob Starter-module wilt installeren, voegt u de volgende afhankelijkheden toe aan uw bestand pom.xml:
De Spring Cloud Azure Stuklijst (BOM):
<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>Notitie
Als u Spring Boot 4.0.x gebruikt, moet u de
spring-cloud-azure-dependenciesversie instellen op7.1.0.Als u Spring Boot 3.5.x gebruikt, moet u de
spring-cloud-azure-dependenciesversie instellen op6.1.0.Als u Spring Boot 3.1.x-3.5.x gebruikt, moet u de
spring-cloud-azure-dependenciesversie instellen op5.25.0.Als u Spring Boot 2.x gebruikt, moet u de
spring-cloud-azure-dependenciesversie instellen op4.20.0.Deze BOM (Bill of Material) moet worden geconfigureerd in de
<dependencyManagement>sectie van uw pom.xml-bestand. Dit zorgt ervoor dat alle Spring Cloud-Azure afhankelijkheden dezelfde versie gebruiken.Zie Welke Versie van Spring Cloud Azure Moet Ik Gebruiken voor meer informatie over de versie die voor deze BOM wordt gebruikt.
Het Spring Cloud Azure Storage Blob Starter-artefact:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-storage-blob</artifactId> </dependency>
De toepassing coderen
Als u bestanden uit blobs wilt uploaden en lezen met behulp van de Spring Cloud Azure Storage Blob Starter, configureert u de toepassing met behulp van de volgende stappen.
Configureer een opslagaccountnaam en eindpunt in het configuratiebestand application.properties , zoals wordt weergegeven in het volgende voorbeeld.
spring.cloud.azure.storage.blob.account-name=${AZURE_STORAGE_ACCOUNT_NAME} spring.cloud.azure.storage.blob.endpoint=${AZURE_STORAGE_ACCOUNT_ENDPOINT}Maak een nieuwe
BlobControllerJava-klasse, zoals wordt weergegeven in het volgende voorbeeld. Deze klasse wordt gebruikt voor het uploaden en lezen van bestanden uit de container-blob in het Azure Storage-account.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"; } }Aanbeveling
In deze handleiding zijn er geen verificatiebewerkingen in de configuraties of de code. Voor het maken van verbinding met Azure-services is echter verificatie vereist. Als u de verificatie wilt voltooien, moet u Azure Identiteit gebruiken. Spring Cloud Azure maakt gebruik van
DefaultAzureCredential, die de Azure Identity-bibliotheek biedt om u te helpen referenties te verkrijgen zonder codewijzigingen.DefaultAzureCredentialondersteunt meerdere verificatiemethoden en bepaalt welke methode tijdens runtime moet worden gebruikt. Met deze aanpak kan uw app verschillende verificatiemethoden gebruiken in verschillende omgevingen (zoals lokale en productieomgevingen) zonder omgevingsspecifieke code te implementeren. Zie DefaultAzureCredential voor meer informatie.Als u de verificatie in lokale ontwikkelomgevingen wilt voltooien, kunt u Azure CLI, Visual Studio Code, PowerShell of andere methoden gebruiken. Zie Azure-verificatie in Java ontwikkelomgevingen voor meer informatie. Als u de verificatie in Azure hostingomgevingen wilt voltooien, raden we u aan om een door de gebruiker toegewezen beheerde identiteit te gebruiken. Zie Wat zijn beheerde identiteiten voor Azure resources?
Nadat uw toepassing is gestart, gebruikt u
curlom uw toepassing te testen door de volgende stappen te volgen.Verzend een POST-aanvraag om de inhoud van een bestand bij te werken met behulp van de volgende opdracht:
curl http://localhost:8080/blob/writeBlobFile -d "new message" -H "Content-Type: text/plain"U zou een antwoord moeten zien dat zegt
file was updated.Verzend een GET-aanvraag om de inhoud van het bestand te controleren met behulp van de volgende opdracht:
curl -X GET http://localhost:8080/blob/readBlobFileU ziet nu de tekst 'nieuw bericht' die u hebt gepost.
Implementeren in Azure Spring Apps
Nu de Spring Boot-toepassing lokaal wordt uitgevoerd, is het tijd om deze naar productie te verplaatsen. Azure Spring Apps maakt het eenvoudig om Spring Boot-toepassingen te implementeren in Azure zonder codewijzigingen. De service beheert de infrastructuur van Spring-toepassingen, zodat ontwikkelaars zich kunnen richten op hun code. Azure Spring Apps biedt levenscyclusbeheer met behulp van uitgebreide bewaking en diagnose, configuratiebeheer, servicedetectie, CI/CD-integratie, blauwgroene implementaties en meer. Zie Uw eerste toepassing implementeren voor Azure Spring Apps om uw toepassing te implementeren in Azure Spring Apps.
Volgende stappen
Als u meer wilt weten over Spring en Azure, gaat u verder naar het Spring op Azure documentatiecentrum.
Zie ook
Zie Wat is Spring Cloud Azure? voor meer informatie over de extra Spring Boot Starters die beschikbaar zijn voor Microsoft Azure>
Zie de volgende artikelen voor meer informatie over aanvullende Azure opslag-API's die u kunt aanroepen vanuit uw Spring Boot-toepassingen: