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

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.11.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.17.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.

  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. 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 DefaultAzureCredentialaz 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?

  3. Az alkalmazás futtatása curl után 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"
      

      Látnia kell egy választ, 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
      

      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: