Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez az oktatóanyag bemutatja, hogyan tölthet fel és olvashat be tárolóblobokat egy Azure Blob Storage-fiókban egy Spring Boot-alkalmazásból.
Azure Blob Storage Microsoft objektumtárolási megoldása a felhőhöz. A Blob Storage nagy mennyiségű strukturálatlan adat, például szöveges vagy bináris adatok tárolására van optimalizálva.
Előfeltételek
- Egy Azure előfizetés – ingyenes előfizetés.
- Java Fejlesztői készlet (JDK) 8-os vagy újabb verzió.
- Apache Maven, 3.0-s vagy újabb verzió.
- cURL vagy hasonló HTTP-segédprogram a funkciók teszteléséhez.
- Egy Azure tárfiók és tároló. Ha nem rendelkezik ilyen fiókkal, hozzon létre egy tárfiókot.
- Egy Spring Boot-alkalmazás. Ha még nem rendelkezik ilyennel, hozzon létre egy Maven-projektet a Spring Initializrsegítségével. Mindenképpen válassza a Maven Project lehetőséget, majd a Dependencies területen adja hozzá a Spring web függőséget, majd válassza Java 8-es vagy újabb verziót.
Feljegyzés
Ha hozzáférést szeretne adni a fiókjának az erőforrásokhoz, az újonnan létrehozott Azure Storage fiókjában rendelje hozzá a Storage Blob Data Contributor szerepkört az éppen használt Microsoft Entra fiókhoz. További információkért lásd: Azure szerepkörök hozzárendelése az Azure portálon.
Fontos
Az oktatóanyag lépéseinek elvégzéséhez a Spring Boot 2.5-ös vagy újabb verziójára van szükség.
Tároló létrehozása
Először hozzon létre egy testcontainer nevű tárolót a Feltöltés, letöltés és lista blobok Azure portállal című szakasz utasításait követve.
Blobok feltöltése és olvasása Azure Storage fióktárolóból
Miután létrehozott egy Azure Storage fiókot és tárolót, a Spring Cloud Azure használatával fájlokat tölthet fel és olvashat el blobokból.
A Spring Cloud Azure Storage Blob Starter modul telepítéséhez adja hozzá a következő függőségeket a pom.xml fájlhoz:
A Spring Cloud Azure Anyagjegyzék (BOM):
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>7.4.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>Feljegyzés
Ha Spring Boot 4.0.x-et használ, állítsa a verziót a
spring-cloud-azure-dependencieskövetkezőre7.4.0: .Ha a Spring Boot 3.5.x-et használja, állítsa a verziót a
spring-cloud-azure-dependencieskövetkezőre6.5.0: .Ha a Spring Boot 3.1.x-3.5.x verziót használja, mindenképpen állítsa be a verziót
spring-cloud-azure-dependencies-ra/c1.Ha a Spring Boot 2.x-et használja, mindenképpen állítsa be a
spring-cloud-azure-dependenciesverziót4.20.0-re.Ezt az anyagjegyzéket (BOM) a
<dependencyManagement>fájl szakaszában kell konfigurálni. Ez biztosítja, hogy minden Spring Cloud-Azure függőség ugyanazt a verziót használja.Az anyagjegyzékhez használt verzióval kapcsolatos további információkért lásd: Melyik Spring Cloud Azure verziót érdemes használni.
A Spring Cloud Azure Storage Blob Starter artefaktum:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-storage-blob</artifactId> </dependency>
Az alkalmazás kódolása
Ha a Spring Cloud Azure Storage Blob Starter használatával szeretne fájlokat feltölteni és olvasni a blobokból, konfigurálja az alkalmazást az alábbi lépésekkel.
Konfiguráljon egy Storage-fióknevet és -végpontot az application.properties konfigurációs fájlban az alábbi példában látható módon.
spring.cloud.azure.storage.blob.account-name=${AZURE_STORAGE_ACCOUNT_NAME} spring.cloud.azure.storage.blob.endpoint=${AZURE_STORAGE_ACCOUNT_ENDPOINT}Hozzon létre egy új
BlobControllerJava osztályt az alábbi példában látható módon. Ebben az osztályban tölthet fel és olvashat fájlokat a tárolóblobból a Azure Storage-fiókban.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"; } }Tipp
Ebben az oktatóanyagban nincsenek hitelesítési műveletek a konfigurációkban vagy a kódban. Az Azure szolgáltatásokhoz való csatlakozáshoz azonban hitelesítés szükséges. A hitelesítés befejezéséhez Azure Identitást kell használnia. A Spring Cloud Azure
DefaultAzureCredentialhasznál, amelyet az Azure Identitástár biztosít a hitelesítő adatok kódmódosítások nélküli beszerzéséhez.DefaultAzureCredentialtöbb hitelesítési módszert támogat, és meghatározza, hogy melyik metódust használja futásidőben. Ez a megközelítés lehetővé teszi, hogy az alkalmazás különböző hitelesítési módszereket használjon különböző környezetekben (például helyi és éles környezetekben) környezetspecifikus kód implementálása nélkül. További információ: DefaultAzureCredential.A helyi fejlesztési környezetekben a hitelesítés befejezéséhez használhat Azure CLI, Visual Studio Code, PowerShellt vagy más módszereket. További információ: Azure hitelesítés Java fejlesztési környezetekben. Ha Azure üzemeltetési környezetekben szeretné elvégezni a hitelesítést, javasoljuk, hogy használja a felhasználó által hozzárendelt felügyelt identitást. További információ: Mi az Azure-erőforrások felügyelt identitásai?
Az alkalmazás futtatása után a
curlsegítségével az alábbi lépések végrehajtásával tesztelheti az alkalmazást.Post kérés küldése a fájl tartalmának frissítéséhez az alábbi paranccsal:
curl http://localhost:8080/blob/writeBlobFile -d "new message" -H "Content-Type: text/plain"Megjelenik egy válasz, amely azt mondja
file was updated.Küldjön get kérést a fájl tartalmának ellenőrzéséhez az alábbi paranccsal:
curl -X GET http://localhost:8080/blob/readBlobFileMegjelenik a közzétett "új üzenet" szöveg.
Üzembe helyezés a Azure Spring Apps
Most, hogy a Spring Boot-alkalmazás lokálisan fut, ideje éles környezetbe áthelyezni. Azure Spring Apps megkönnyíti a Spring Boot-alkalmazások Azure való üzembe helyezését kódmódosítások nélkül. A szolgáltatás kezeli a Spring-alkalmazások infrastruktúráját, hogy a fejlesztők a kódjukra összpontosíthassanak. Azure Spring Apps teljes körű monitorozás és diagnosztika, konfigurációkezelés, szolgáltatásfelderítés, CI/CD-integráció, kék-zöld környezetek és egyebek használatával biztosítja az életciklus-felügyeletet. Az alkalmazás Azure Spring Apps való üzembe helyezéséről a A Azure Spring Apps első alkalmazás üzembe helyezéséről szóló cikkben olvashat.
Következő lépések
A Spring és a Azure megismeréséhez lépjen tovább a Spring on Azure dokumentációs központba.
Lásd még
További információ a Microsoft Azure elérhető további Spring Boot Starterekről: Mi a Spring Cloud Azure?
A Spring Boot-alkalmazásokból hívható további Azure storage API-kkal kapcsolatos további információkért tekintse meg az alábbi cikkeket: