Sdílet prostřednictvím


Začínáme se službou Azure Blob Storage a Javou

V tomto článku se dozvíte, jak se připojit ke službě Azure Blob Storage pomocí klientské knihovny azure Blob Storage pro Javu. Po připojení se pomocí příruček pro vývojáře dozvíte, jak váš kód funguje s kontejnery, objekty blob a funkcemi služby Blob Storage.

Pokud chcete začít s úplným příkladem, podívejte se na rychlý start: Klientská knihovna Azure Blob Storage pro Javu.

Referenční dokumentace | Balíček (Maven) | Zdrojový kód knihovny | Ukázky | Poskytnout zpětnou vazbu

Požadavky

Nastavení projektu

Poznámka:

Tento článek používá nástroj pro sestavení Maven k sestavení a spuštění ukázkového kódu. Další nástroje sestavení, jako je Gradle, také pracují se sadou Azure SDK pro Javu.

Pomocí Mavenu vytvořte novou konzolovou aplikaci nebo otevřete existující projekt. Podle těchto kroků nainstalujte balíčky a přidejte potřebné import direktivy.

Instalace balíčků

Otevřete soubor v textovém pom.xml editoru. Nainstalujte balíčky zahrnutím souboru kusovníku nebo zahrnutím přímé závislosti.

Zahrnout soubor kusovníku

Přidejte azure-sdk-bom , abyste mohli využívat závislost na nejnovější verzi knihovny. V následujícím fragmentu {bom_version_to_target} kódu nahraďte zástupný symbol číslem verze. Použití azure-sdk-bom vás zbavuje nutnosti určovat verzi každé jednotlivé závislosti. Další informace o BOM najdete v dokumentu README pro Azure SDK BOM.

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.azure</groupId>
            <artifactId>azure-sdk-bom</artifactId>
            <version>{bom_version_to_target}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

Do skupiny závislostí přidejte následující prvky závislostí. Závislost azure-identity je potřebná pro připojení bez hesla ke službám Azure.

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-storage-blob</artifactId>
</dependency>
<dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-storage-common</artifactId>
</dependency>
<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
</dependency>

Zahrnutí přímé závislosti

Chcete-li mít závislost na konkrétní verzi knihovny, přidejte do svého projektu přímou závislost:

<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-storage-blob</artifactId>
    <version>{package_version_to_target}</version>
</dependency>
<dependency>
      <groupId>com.azure</groupId>
      <artifactId>azure-storage-common</artifactId>
      <version>{package_version_to_target}</version>
</dependency>
<dependency>
    <groupId>com.azure</groupId>
    <artifactId>azure-identity</artifactId>
    <version>{package_version_to_target}</version>
</dependency>

Zahrnout importní příkazy

Pak otevřete soubor kódu a přidejte potřebné import direktivy. V tomto příkladu přidáme do souboru App.java následující direktivy:

import com.azure.core.credential.*;
import com.azure.identity.*;
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
import com.azure.storage.blob.specialized.*;
import com.azure.storage.common.*;

Informace o klientské knihovně Blob

Autorizace přístupu a připojení ke službě Blob Storage

Pokud chcete připojit aplikaci ke službě Blob Storage, vytvořte instanci třídy BlobServiceClient . K asynchronnímu programování můžete použít také třídu BlobServiceAsyncClient. Tento objekt je vaším výchozím bodem pro interakci s datovými prostředky na úrovni účtu úložiště. Můžete ho použít k práci s účtem úložiště a jeho kontejnery. Klienta služby můžete také použít k vytvoření klientů pro kontejnery nebo klientů pro blob, v závislosti na prostředku, se kterým potřebujete pracovat.

Další informace o vytváření a správě klientských objektů najdete v tématu Vytváření a správa klientských objektů, které pracují s datovými prostředky.

Objekt můžete autorizovat BlobServiceClient pomocí autorizačního tokenu Microsoft Entra, přístupového klíče účtu nebo sdíleného přístupového podpisu (SAS). Pro zajištění optimálního zabezpečení Microsoft doporučuje používat Microsoft Entra ID se spravovanými identitami k autorizaci požadavků na data blobů. Další informace naleznete v tématu Autorizace přístupu k objektům blob pomocí Microsoft Entra ID.

Pokud chcete autorizovat s ID Microsoft Entra, budete muset použít principál zabezpečení. Jaký typ objektu zabezpečení potřebujete, závisí na tom, kde vaše aplikace běží. Jako vodítko použijte následující tabulku:

Kde aplikace běží Principál zabezpečení Pokyny
Místní počítač (vývoj a testování) Služební hlavní jméno Pokud chcete zjistit, jak aplikaci zaregistrovat, nastavte skupinu Microsoft Entra, přiřaďte role a nakonfigurujte proměnné prostředí, přečtěte si téma Autorizace přístupu pomocí instančních objektů pro vývojáře.
Místní počítač (vývoj a testování) Identita uživatele Informace o nastavení skupiny Microsoft Entra, přiřazení rolí a přihlášení k Azure najdete v tématu Autorizace přístupu pomocí přihlašovacích údajů vývojáře.
Hostované v Azure Spravovaná identita Informace o povolení spravované identity a přiřazování rolí najdete v tématu Autorizace přístupu z aplikací hostovaných v Azure pomocí spravované identity.
Hostované mimo Azure (například místní aplikace) Služební hlavní jméno Informace o registraci aplikace, přiřazení rolí a konfiguraci proměnných prostředí najdete v tématu Autorizace přístupu z místních aplikací pomocí instančního objektu aplikace.

Autorizace přístupu pomocí DefaultAzureCredential

Snadným a bezpečným způsobem autorizace přístupu a připojení ke službě Blob Storage je získání tokenu OAuth vytvořením instance DefaultAzureCredential . Tyto přihlašovací údaje pak můžete použít k vytvoření objektu BlobServiceClient .

Ujistěte se, že máte v pom.xml správné závislosti a potřebné direktivy importu, jak je popsáno v tématu Nastavení projektu.

Následující příklad používá BlobServiceClientBuilder k sestavení BlobServiceClient objektu pomocí DefaultAzureCredentiala ukazuje, jak vytvořit kontejner a klienty objektů blob v případě potřeby:

// Azure SDK client builders accept the credential as a parameter
// TODO: Replace <storage-account-name> with your actual storage account name
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
        .endpoint("https://<storage-account-name>.blob.core.windows.net/")
        .credential(new DefaultAzureCredentialBuilder().build())
        .buildClient();

// If needed, you can create a BlobContainerClient object from the BlobServiceClient
BlobContainerClient containerClient = blobServiceClient
        .getBlobContainerClient("<container-name>");

// If needed, you can create a BlobClient object from the BlobContainerClient
BlobClient blobClient = containerClient
        .getBlobClient("<blob-name>");

Konfigurace TTL JVM pro vyhledávání DNS názvů

Virtuální počítač Java (JVM) ukládá odpovědi z úspěšných vyhledávání názvů DNS za určité časové období, označované jako TTL (time-to-live). Výchozí hodnota TTL pro mnoho virtuálních počítačů JVM je -1, což znamená, že JVM ukládá odpověď do mezipaměti po neomezenou dobu nebo dokud se počítač JVM nerestartuje.

Vzhledem k tomu, že prostředky Azure používají položky názvu DNS, které se můžou změnit, doporučujeme nastavit hodnotu TTL JVM na 10 sekund. Tato konfigurace zajišťuje, že se aktualizovaná IP adresa prostředku vrátí s dalším dotazem DNS.

Pokud chcete změnit hodnotu TTL globálně pro všechny aplikace používající JVM, nastavte networkaddress.cache.ttl vlastnost v java.security souboru.

networkaddress.cache.ttl=10

Pro Javu 8 java.security se soubor nachází v $JAVA_HOME/jre/lib/security adresáři. Pro Javu 11 a vyšší se soubor nachází v $JAVA_HOME/conf/security adresáři.

Vytvořte aplikaci

Při vytváření aplikací pro práci s datovými prostředky ve službě Azure Blob Storage váš kód primárně komunikuje se třemi typy prostředků: účty úložiště, kontejnery a objekty blob. Další informace o těchto typech zdrojů, jejich vzájemných vztazích a interakci aplikací se zdroji najdete v tématu Vysvětlení způsobu interakce aplikací s datovými prostředky Blob Storage.

Následující příručky ukazují, jak získat přístup k datům a provádět konkrétní akce pomocí klientské knihovny Azure Storage pro Javu:

Průvodce Popis
Konfigurujte zásady opakování Implementujte zásady opakování pro klientské operace.
Kopírování blobů Zkopírujte blob z jednoho umístění do druhého.
Vytvoření kontejneru Vytvořte kontejnery blob.
Vytvořit pověření uživatele SAS Vytvořte delegovaný SAS pro uživatele v rámci kontejneru nebo objektu BLOB.
Vytváření a správa pronájmů blobů Vytvořte a spravujte zámek na objektu blob.
Vytváření a správa zapůjčení kontejnerů Vytvořte a spravujte zámek kontejneru.
Odstranit a obnovit blob Odstraňte objekty blob, a pokud je povolené soft-delete, obnovte odstraněné objekty blob.
Odstranění a obnovení kontejnerů Odstraňte kontejnery a pokud je povolené obnovitelné odstranění, obnovte odstraněné kontejnery.
Stáhnout blobs Stahujte BLOBy pomocí řetězců, datových proudů a cest k souborům.
Vyhledání objektů blob pomocí značek Nastavte a načtěte značky a použijte značky k vyhledání datových bloků.
Seznam blobů Výpis blobů různými způsoby
Výpis kontejnerů Vypište kontejnery v účtu a různé možnosti dostupné pro přizpůsobení výpisu.
Správa vlastností a metadat (objektů blob) Získávání a nastavování vlastností a metadat pro objekty blob.
Správa vlastností a metadat (kontejnerů) Získejte a nastavte vlastnosti a metadata pro kontejnery.
Ladění výkonu pro přenosy dat Optimalizujte výkon operací přenosu dat.
Nastavení nebo změna úrovně přístupu objektu blob Nastavte nebo změňte úroveň přístupu pro blokový blob.
Nahrání blobů Naučte se nahrávat objekty blob pomocí řetězců, streamů, cest k souborům a dalších metod.