Nahrání souboru do služby Azure Blob Storage

V tomto kurzu se dozvíte, jak nahrát a číst z objektů blob kontejneru v účtu služby Azure Blob Storage z aplikace Spring Boot.

Azure Blob Storage je řešení úložiště objektů Od Microsoftu pro cloud. Úložiště objektů blob je optimalizované pro ukládání obrovského množství nestrukturovaných dat, jako jsou textová nebo binární data.

Požadavky

Poznámka:

Pokud chcete účtu udělit přístup k prostředkům, přiřaďte Storage Blob Data Contributor v nově vytvořeném účtu Azure Storage roli k účtu Microsoft Entra, který právě používáte. Další informace viz Přiřazení rolí Azure pomocí webu Azure Portal.

Důležité

K dokončení kroků v tomto kurzu se vyžaduje Spring Boot verze 2.5 nebo vyšší.

Vytvoření kontejneru

Nejprve vytvořte kontejner s názvem testcontainer podle pokynů v rychlém startu: Nahrání, stažení a výpis objektů blob pomocí webu Azure Portal.

Nahrání a čtení objektů blob z kontejneru účtu služby Azure Storage

Teď, když máte účet a kontejner Azure Storage, můžete nahrávat a číst soubory z objektů blob pomocí Spring Cloud Azure.

Pokud chcete nainstalovat úvodní modul Spring Cloud Azure Storage Blob, přidejte do souboru pom.xml následující závislosti:

  • Kusovník materiálů (BOM) Spring Cloud v Azure:

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

    Poznámka:

    Pokud používáte Spring Boot 2.x, nezapomeňte nastavit spring-cloud-azure-dependencies verzi na 4.17.0. Tato faktura materiálu (BOM) by měla být nakonfigurována v <dependencyManagement> části vašeho pom.xml souboru. Tím se zajistí, že všechny závislosti Azure Spring Cloudu budou používat stejnou verzi. Další informace o verzi použité pro tuto kusovníku najdete v tématu Jakou verzi Spring Cloud Azure mám použít.

  • Úvodní artefakt Služby Azure Storage pro Spring Cloud:

    <dependency>
      <groupId>com.azure.spring</groupId>
      <artifactId>spring-cloud-azure-starter-storage-blob</artifactId>
    </dependency>
    

Vytvoření kódu aplikace

Pokud chcete nahrát a číst soubory z objektů blob pomocí úvodní sady objektů blob služby Spring Cloud Azure Storage, nakonfigurujte aplikaci pomocí následujícího postupu.

  1. V konfiguračním souboru application.properties nakonfigurujte název a koncový bod účtu úložiště, jak je znázorněno v následujícím příkladu.

    spring.cloud.azure.storage.blob.account-name=${AZURE_STORAGE_ACCOUNT_NAME}
    spring.cloud.azure.storage.blob.endpoint=${AZURE_STORAGE_ACCOUNT_ENDPOINT}
    
  2. Vytvořte novou BlobController třídu Java, jak je znázorněno v následujícím příkladu. Tato třída se používá k nahrání a čtení souborů z objektu blob kontejneru v účtu Azure Storage.

    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";
        }
    }
    

    Tip

    V tomto kurzu nejsou v konfiguracích ani kódu žádné ověřovací operace. Připojení ke službám Azure ale vyžaduje ověření. K dokončení ověřování je potřeba použít identitu Azure. Spring Cloud Azure používá DefaultAzureCredential, kterou poskytuje knihovna identit Azure, která vám pomůže získat přihlašovací údaje bez jakýchkoli změn kódu.

    DefaultAzureCredential podporuje více metod ověřování a určuje, kterou metodu použít za běhu. Tento přístup umožňuje vaší aplikaci používat různé metody ověřování v různých prostředích (například v místních a produkčních prostředích) bez implementace kódu specifického pro prostředí. Další informace naleznete v tématu DefaultAzureCredential.

    K dokončení ověřování v místních vývojových prostředích můžete použít Azure CLI, Visual Studio Code, PowerShell nebo jiné metody. Další informace najdete v tématu Ověřování Azure ve vývojových prostředích Java. K dokončení ověřování v hostitelských prostředích Azure doporučujeme použít spravovanou identitu přiřazenou uživatelem. Další informace najdete v tématu Co jsou spravované identity pro prostředky Azure?

  3. Po spuštění aplikace použijte curl k otestování aplikace pomocí následujícího postupu.

    1. Pomocí následujícího příkazu odešlete požadavek POST na aktualizaci obsahu souboru:

      curl http://localhost:8080/blob/writeBlobFile -d "new message" -H "Content-Type: text/plain"
      

      Měla by se zobrazit odpověď s textem file was updated.

    2. Pomocí následujícího příkazu odešlete požadavek GET k ověření obsahu souboru:

      curl -X GET http://localhost:8080/blob/readBlobFile
      

      Měl by se zobrazit text "nová zpráva", který jste publikovali.

Nasazení do Azure Spring Apps

Teď, když máte aplikaci Spring Boot spuštěnou místně, je čas ji přesunout do produkčního prostředí. Azure Spring Apps usnadňuje nasazování aplikací Spring Boot do Azure bez jakýchkoli změn kódu. Služba spravuje infrastrukturu aplikací Spring, aby se vývojáři mohli soustředit na svůj kód. Azure Spring Apps poskytuje správu životního cyklu pomocí komplexního monitorování a diagnostiky, správy konfigurace, zjišťování služeb, integrace CI/CD, modrých zelených nasazení a dalších. Pokud chcete nasadit aplikaci do Azure Spring Apps, přečtěte si téma Nasazení první aplikace do Azure Spring Apps.

Další kroky

Pokud se chcete dozvědět více o architektuře Spring a Azure, přejděte do centra dokumentace Spring v Azure.

Viz také

Další informace o dalších úvodních sadě Spring Boot, které jsou k dispozici pro Microsoft Azure, najdete v tématu Co je Spring Cloud Azure?

Další informace o dalších rozhraních API úložiště Azure, která můžete volat z aplikací Spring Boot, najdete v následujících článcích: