Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här självstudien visar hur du laddar upp och läser från containerblobar i ett Azure Blob Storage-konto från en Spring Boot-applikation.
Azure Blob Storage är Microsofts objektlagringslösning för molnet. Blob Storage är optimerat för lagring av en enorm mängd ostrukturerade data, till exempel text eller binära data.
Förutsättningar
- En Azure prenumeration – skapa en kostnadsfri.
- Java Development Kit (JDK) version 8 eller senare.
- Apache Maven, version 3.0 eller senare.
- cURL eller ett liknande HTTP-verktyg för att testa funktioner.
- Ett Azure lagringskonto och en container. Om du inte har ett skapar du ett lagringskonto.
- Ett Spring Boot-program. Om du inte har ett skapar du ett Maven-projekt med Spring Initializr. Välj Maven Project och under Dependencies lägger du till Spring Web beroende och väljer sedan Java version 8 eller senare.
Kommentar
Om du vill ge ditt konto åtkomst till resurser tilldelar du rollen Storage Blob Data Contributor till det Microsoft Entra konto som du använder för närvarande i ditt nyligen skapade Azure Storage-konto. Mer information finns i Tilldela Azure roller med hjälp av Azure-portalen.
Viktigt!
Spring Boot version 2.5 eller senare krävs för att slutföra stegen i den här självstudien.
Skapa en container
Skapa först en container med namnet testcontainer genom att följa anvisningarna i Quickstart: Ladda upp, ladda ned och lista blobbar med Azure-portalen.
Ladda upp och läsa blobar från Azure Storage kontocontainer
Nu när du har ett Azure Storage konto och en container kan du ladda upp och läsa filer från blobar med Spring Cloud-Azure.
Om du vill installera Modulen Spring Cloud Azure Storage Blob Starter lägger du till följande beroenden i filen pom.xml:
Spring Cloud Azure materialförteckning (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>Kommentar
Om du använder Spring Boot 4.0.x måste du ange
spring-cloud-azure-dependenciesversionen till7.1.0.Om du använder Spring Boot 3.5.x måste du ange
spring-cloud-azure-dependenciesversionen till6.1.0.Om du använder Spring Boot 3.1.x-3.5.x måste du ange
spring-cloud-azure-dependenciesversionen till5.25.0.Om du använder Spring Boot 2.x måste du ange
spring-cloud-azure-dependenciesversionen till4.20.0.Den här materialspecifikationen (BOM) bör konfigureras i avsnittet
<dependencyManagement>i din pom.xml-fil. Detta säkerställer att alla Spring Cloud-Azure beroenden använder samma version.Mer information om vilken version som används för denna BOM finns i dokumentationen Which Version of Spring Cloud Azure Should I Use.
Spring Cloud Azure Storage Blob Starter-artefakten:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-storage-blob</artifactId> </dependency>
Koda appen
Om du vill ladda upp och läsa filer från blobar med hjälp av Spring Cloud Azure Storage Blob Starter konfigurerar du programmet med hjälp av följande steg.
Konfigurera ett lagringskontonamn och en slutpunkt i konfigurationsfilen application.properties , som du ser i följande exempel.
spring.cloud.azure.storage.blob.account-name=${AZURE_STORAGE_ACCOUNT_NAME} spring.cloud.azure.storage.blob.endpoint=${AZURE_STORAGE_ACCOUNT_ENDPOINT}Skapa en ny klass
BlobControllerJava enligt följande exempel. Den här klassen används för att ladda upp och läsa filer från containerbloben i Azure Storage-kontot.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"; } }Tips
I den här handledningen finns det inga autentiseringsåtgärder i konfigurationerna eller koden. Anslutning till Azure tjänster kräver dock autentisering. För att slutföra autentiseringen måste du använda Azure identitet. Spring Cloud Azure använder
DefaultAzureCredential, som Azure Identity-biblioteket tillhandahåller för att hjälpa dig att få autentiseringsuppgifter utan några kodändringar.DefaultAzureCredentialstöder flera autentiseringsmetoder och avgör vilken metod som ska användas vid körning. Med den här metoden kan din app använda olika autentiseringsmetoder i olika miljöer (till exempel lokala miljöer och produktionsmiljöer) utan att implementera miljöspecifik kod. Mer information finns i DefaultAzureCredential.För att slutföra autentiseringen i lokala utvecklingsmiljöer kan du använda Azure CLI, Visual Studio Code, PowerShell eller andra metoder. Mer information finns i Azure-autentisering i Java utvecklingsmiljöer. För att slutföra autentiseringen i Azure värdmiljöer rekommenderar vi att du använder användartilldelad hanterad identitet. Mer information finns i Vad är hanterade identiteter för Azure resurser?
När programmet har körts använder du
curlför att testa programmet genom att följa dessa steg.Skicka en POST-begäran om att uppdatera en fils innehåll med hjälp av följande kommando:
curl http://localhost:8080/blob/writeBlobFile -d "new message" -H "Content-Type: text/plain"Du bör se ett svar som säger
file was updated.Skicka en GET-begäran för att verifiera filens innehåll med hjälp av följande kommando:
curl -X GET http://localhost:8080/blob/readBlobFileDu bör se texten "nytt meddelande" som du har publicerat.
Distribuera till Azure Spring Apps
Nu när Spring Boot-programmet körs lokalt är det dags att flytta det till produktion. Azure Spring Apps gör det enkelt att distribuera Spring Boot-program till Azure utan några kodändringar. Tjänsten hanterar infrastrukturen för Spring-program så att utvecklare kan fokusera på sin kod. Azure Spring Apps tillhandahåller livscykelhantering med omfattande övervakning och diagnostik, konfigurationshantering, tjänstidentifiering, CI/CD-integrering, blågröna distributioner med mera. Information om hur du distribuerar ditt program till Azure Spring Apps finns i Distribuera ditt första program till Azure Spring Apps.
Nästa steg
Om du vill veta mer om Spring och Azure kan du fortsätta till Dokumentationscentret för Spring on Azure.
Se även
Mer information om de ytterligare Spring Boot-startarna som är tillgängliga för Microsoft Azure finns i Vad är Spring Cloud Azure?
Mer information om ytterligare Azure lagrings-API:er som du kan anropa från dina Spring Boot-program finns i följande artiklar: