Fájl feltöltése Azure Blob Storage a Spring Boot használatával

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-dependencies következőre 7.4.0: .

    Ha a Spring Boot 3.5.x-et használja, állítsa a verziót a spring-cloud-azure-dependencies következőre 6.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-dependencies verziót 4.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.

  1. 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}
    
  2. Hozzon létre egy új BlobController Java 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 DefaultAzureCredential használ, amelyet az Azure Identitástár biztosít a hitelesítő adatok kódmódosítások nélküli beszerzéséhez.

    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á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?

  3. Az alkalmazás futtatása után a curl segítségével az alábbi lépések végrehajtásával tesztelheti az alkalmazást.

    1. 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.

    2. 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
      

      Megjelenik 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: