Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto kurzu se dozvíte, jak nahrát a číst z objektů blob kontejneru v účtu Azure Blob Storage z aplikace Spring Boot.
Azure Blob Storage je Microsoft řešení úložiště objektů 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
- Předplatné Azure – vytvořte si ho zdarma.
- Java Development Kit (JDK) verze 8 nebo vyšší.
- Apache Maven verze 3.0 nebo vyšší.
- cURL nebo podobný nástroj HTTP pro testování funkčnosti.
- Účet úložiště a kontejner Azure. Pokud ho nemáte, vytvořte úložný účet.
- Aplikace Spring Boot. Pokud ho nemáte, vytvořte projekt Maven pomocí aplikace Spring Initializr. Nezapomeňte vybrat Maven Project a v části Dependencies přidejte závislost Spring Web a pak vyberte Java verze 8 nebo vyšší.
Poznámka:
Pokud chcete účtu udělit přístup k prostředkům, přiřaďte v nově vytvořeném účtu Azure Storage roli Storage Blob Data Contributor k účtu Microsoft Entra, který právě používáte. Další informace najdete v tématu Assignování rolí Azure pomocí portálu Azure.
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 Quickstart: Nahrání, stažení a výpis objektů blob pomocí portálu Azure portal.
Nahrání a čtení objektů blob z kontejneru účtu Azure Storage
Teď, když máte účet Azure Storage a kontejner, můžete nahrát a číst soubory z objektů blob pomocí Azure Spring Cloud.
Pokud chcete nainstalovat modul Spring Cloud Azure Storage Blob Starter, přidejte do souboru
Spring Cloud Azure BOM:
<dependencyManagement> <dependencies> <dependency> <groupId>com.azure.spring</groupId> <artifactId>spring-cloud-azure-dependencies</artifactId> <version>7.2.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement>Poznámka:
Pokud používáte Spring Boot 4.0.x, nezapomeňte nastavit
spring-cloud-azure-dependenciesverzi na7.2.0.Pokud používáte Spring Boot 3.5.x, nezapomeňte nastavit
spring-cloud-azure-dependenciesverzi na6.2.0hodnotu.Pokud používáte Spring Boot 3.1.x-3.5.x, nezapomeňte nastavit verzi na
spring-cloud-azure-dependencies.Pokud používáte Spring Boot 2.x, nezapomeňte nastavit
spring-cloud-azure-dependenciesverzi na4.20.0.Tato faktura materiálu (BOM) by měla být nakonfigurována v
<dependencyManagement>části vašeho pom.xml souboru. Tím zajistíte, že všechny závislosti Spring Cloud Azure budou používat stejnou verzi.Další informace o verzi použité pro tento kusovník najdete v tématu Kterou verzi Spring Cloud Azure bych měl použít.
Spring Cloud Azure Storage Blob startovací artefakt:
<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 Azure Storage Blob Spring Cloud, nakonfigurujte aplikaci pomocí následujícího postupu.
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}Vytvořte novou třídu
BlobControllerJava, jak je znázorněno v následujícím příkladu. Tato třída slouží 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"; } }Návod
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 Azure Identity. Spring Cloud Azure používá
DefaultAzureCredential, které knihovna identit Azure poskytuje, aby vám pomohla získat přihlašovací údaje bez jakýchkoli změn kódu.DefaultAzureCredentialpodporuje 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 pro vývojová prostředí Java. K dokončení ověřování v Azure hostitelských prostředích 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?
Po spuštění aplikace použijte
curlk otestování aplikace pomocí následujícího postupu.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.Pomocí následujícího příkazu odešlete požadavek GET k ověření obsahu souboru:
curl -X GET http://localhost:8080/blob/readBlobFileMě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 aplikaci nasadit do Azure Spring Apps, viz Nasazení první aplikace na Azure Spring Apps.
Další kroky
Další informace o Springu a Azure najdete v centru dokumentace Spring on Azure.
Viz také
Další informace o dalších úvodních aplikacích 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: