Fájl feltöltése Azure Blob Storage-ba
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.
Az Azure Blob Storage a 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
- Azure-előfizetés – hozzon létre egyet ingyenesen.
- A Java Development Kit (JDK) 8- vagy újabb verziója.
- Apache Maven, 3.0-s vagy újabb verzió.
- cURL vagy hasonló HTTP-segédprogram a funkciók teszteléséhez.
- Egy Azure Storage-fiók és -tároló. Ha nem rendelkezik ilyen fiókkal, hozzon létre egy tárfiókot.
- Egy Spring Boot-alkalmazás. Ha nem rendelkezik ilyennel, hozzon létre egy Maven-projektet a Spring Initializrrel. Mindenképpen válassza a Maven Projectet, és a Függőségek területen adja hozzá a Spring Web-függőséget, majd válassza a Java 8-es vagy újabb verziójá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ókban rendelje hozzá a Storage Blob Data Contributor
szerepkört a jelenleg használt Microsoft Entra-fiókhoz. További információ: Azure-szerepkörök hozzárendelése a Azure Portal.
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 tárolót, amelynek neve testcontainer
a gyorsútmutató utasításait követve történik: Blobok feltöltése, letöltése és listázása az Azure Portalon.
Blobok feltöltése és olvasása az Azure Storage-fiók tárolójából
Most, hogy már rendelkezik Azure Storage-fiókkal és -tárolóval, feltölthet és olvashat fájlokat blobokból a Spring Cloud Azure-nal.
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éke (BOM):
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>5.18.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>
Feljegyzés
Ha Spring Boot 2.x-et használ, mindenképpen állítsa be a verziót
4.19.0
.spring-cloud-azure-dependencies
Ezt az anyagjegyzéket (BOM) a<dependencyManagement>
pom.xml 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. A BOM-hez használt verzióról további információt a Spring Cloud Azure melyik verzióját érdemes használni.A Spring Cloud Azure Storage Blob Starter összetevő:
<dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-starter-storage-blob</artifactId> </dependency>
Az alkalmazás kódolása
Ha blobokból szeretne fájlokat feltölteni és olvasni a Spring Cloud Azure Storage Blob Starter használatával, az alábbi lépésekkel konfigurálja az alkalmazást.
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
BlobController
Java-osztályt az alábbi példában látható módon. Ez az osztály az Azure Storage-fiók tárolóblobjából származó fájlok feltöltésére és olvasására szolgál.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 az Azure Identity-et kell használnia. A Spring Cloud Azure
DefaultAzureCredential
az Azure Identity-kódtár használatával segít a hitelesítő adatok kódmódosítások nélküli beszerzésében.DefaultAzureCredential
tö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álhatja az Azure CLI-t, a Visual Studio Code-ot, a PowerShellt vagy más módszereket. További információ: Azure-hitelesítés Java-fejlesztési környezetekben. A hitelesítés azure-beli üzemeltetési környezetekben való elvégzéséhez javasoljuk a felhasználó által hozzárendelt felügyelt identitás használatát. További információ: Mik az Azure-erőforrások felügyelt identitásai?
Az alkalmazás futtatása
curl
után 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"
Látnia kell egy választ, 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/readBlobFile
Látnia kell a közzétett "új üzenet" szöveget.
Üzembe helyezés az Azure Spring Appsben
Most, hogy a Spring Boot-alkalmazás helyileg fut, ideje éles környezetbe áthelyezni. Az Azure Spring Apps megkönnyíti a Spring Boot-alkalmazások üzembe helyezését az Azure-ban 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. Az Azure Spring Apps átfogó monitorozási és diagnosztikai, konfigurációkezelési, szolgáltatásfelderítési, CI/CD-integrációs, kék-zöld környezetek és egyebek használatával biztosítja az életciklus-felügyeletet. Az alkalmazás Azure Spring Appsben való üzembe helyezéséről az első alkalmazás üzembe helyezése az Azure Spring Appsben című témakörben olvashat.
Következő lépések
Ha szeretne többet megtudni a Spring és az Azure szolgáltatásról, lépjen tovább a Spring on Azure dokumentációs központra.
Lásd még
További információ a Microsoft Azure-hoz elérhető további Spring Boot Starterekről: Mi az a Spring Cloud Azure?
A Spring Boot-alkalmazásokból meghívható további Azure Storage API-kkal kapcsolatos további információkért tekintse meg az alábbi cikkeket: