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 č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
- Předplatné Azure – vytvoření bezplatného předplatného
- Účet úložiště Azure – Vytvoření účtu úložiště
- Java Development Kit (JDK) verze 8 nebo novější
- Apache Maven se používá pro řízení projektů v tomto příkladu.
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
- com.azure.storage.blob: Obsahuje primární třídy (klientské objekty), které můžete použít k provozu se službou, kontejnery a objekty blob.
- com.azure.storage.blob.models: Obsahuje třídy nástrojů, struktury a typy výčtů.
- com.azure.storage.blob.specialized: Obsahuje třídy, které můžete použít k provádění operací specifických pro typ objektu blob (například: doplňovací objekty 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. |