Rychlý start: Správa objektů blob pomocí sady Java v12 SDK
V tomto rychlém startu se naučíte spravovat objekty blob pomocí Javy. Objekty blob jsou objekty, které mohou obsahovat velké objemy textových nebo binárních dat, včetně obrázků, dokumentů, streamovaných médií a archivních dat. Budete nahrávat, stahovat a vy listovat objekty blob a vytvářet a odstraňovat kontejnery.
Další prostředky:
Požadavky
- Účet Azure s aktivním předplatným. Vytvořte si účet zdarma.
- Účet služby Azure Storage. Vytvořte účet úložiště.
- Java Development Kit (JDK) verze 8 nebo vyšší.
- Apache Maven.
Nastavení
Tato část vás provede přípravou projektu pro práci s klientskou knihovnou Azure Blob Storage v12 pro Javu.
Vytvoření projektu
Vytvořte aplikaci v Javě s názvem blob-quickstart-v12.
V okně konzoly (například cmd, PowerShell nebo Bash) vytvořte pomocí Mavenu novou konzolovou aplikaci s názvem blob-quickstart-v12. Zadejte následující příkaz mvn, který vytvoří "Hello world!". Projekt v Javě.
mvn archetype:generate ` --define interactiveMode=n ` --define groupId=com.blobs.quickstart ` --define artifactId=blob-quickstart-v12 ` --define archetypeArtifactId=maven-archetype-quickstart ` --define archetypeVersion=1.4Výstup generování projektu by měl vypadat nějak takhle:
[INFO] Scanning for projects... [INFO] [INFO] ------------------< org.apache.maven:standalone-pom >------------------- [INFO] Building Maven Stub Project (No POM) 1 [INFO] --------------------------------[ pom ]--------------------------------- [INFO] [INFO] >>> maven-archetype-plugin:3.1.2:generate (default-cli) > generate-sources @ standalone-pom >>> [INFO] [INFO] <<< maven-archetype-plugin:3.1.2:generate (default-cli) < generate-sources @ standalone-pom <<< [INFO] [INFO] [INFO] --- maven-archetype-plugin:3.1.2:generate (default-cli) @ standalone-pom --- [INFO] Generating project in Batch mode [INFO] ---------------------------------------------------------------------------- [INFO] Using following parameters for creating project from Archetype: maven-archetype-quickstart:1.4 [INFO] ---------------------------------------------------------------------------- [INFO] Parameter: groupId, Value: com.blobs.quickstart [INFO] Parameter: artifactId, Value: blob-quickstart-v12 [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] Parameter: package, Value: com.blobs.quickstart [INFO] Parameter: packageInPathFormat, Value: com/blobs/quickstart [INFO] Parameter: version, Value: 1.0-SNAPSHOT [INFO] Parameter: package, Value: com.blobs.quickstart [INFO] Parameter: groupId, Value: com.blobs.quickstart [INFO] Parameter: artifactId, Value: blob-quickstart-v12 [INFO] Project created from Archetype in dir: C:\QuickStarts\blob-quickstart-v12 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 7.056 s [INFO] Finished at: 2019-10-23T11:09:21-07:00 [INFO] ------------------------------------------------------------------------ ```Switch to the newly created blob-quickstart-v12 folder.
cd blob-quickstart-v12Na straně adresáře blob-quickstart-v12 vytvořte další adresář s názvem data. Tady se vytvoří a uloží datové soubory objektů blob.
mkdir data
Instalace balíčku
Otevřete soubor pom.xml v textovém editoru. Přidejte následující element závislosti do skupiny závislostí.
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-storage-blob</artifactId>
<version>12.13.0</version>
</dependency>
Nastavení architektury aplikace
Z adresáře projektu:
- Přejděte do adresáře /src/main/java/com/blobs/quickstart.
- Otevřete soubor App.java v editoru.
- Odstranění
System.out.println("Hello world!");příkazu - Přidání
importdirektiv
Tady je kód:
package com.blobs.quickstart;
/**
* Azure blob storage v12 SDK quickstart
*/
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
import java.io.*;
public class App
{
public static void main( String[] args ) throws IOException
{
}
}
Zkopírování přihlašovacích údajů z webu Azure Portal
Když ukázková aplikace vytvoří požadavek na Azure Storage, musí být autorizována. Pokud chcete požadavek autorizovat, přidejte do aplikace přihlašovací údaje svého účtu úložiště jako připojovací řetězec. Pokud chcete zobrazit přihlašovací údaje účtu úložiště, postupujte takto:
Přihlaste se k webu Azure Portal.
Vyhledejte svůj účet úložiště.
V podokně nabídek účtu úložiště v části Zabezpečení a sítě vyberte Přístupové klíče. Tady můžete zobrazit přístupové klíče účtu a úplný připojovací řetězec pro každý klíč.

V podokně Přístupové klíče vyberte Zobrazit klíče.
V části key1 vyhledejte hodnotu Připojovací řetězec. Vyberte ikonu Zkopírovat do schránky a zkopírujte připojovací řetězec. Hodnotu připojovacího řetězce přidáte do proměnné prostředí v další části.

Konfigurace připojovacího řetězce úložiště
Po zkopírování připojovacího řetězce ho zapište do nové proměnné prostředí na místním počítači, na který běží aplikace. Proměnnou prostředí nastavíte tak, že otevřete okno konzoly a budete postupovat podle pokynů pro váš operační systém. Nahraďte <yourconnectionstring> skutečným připojovacím řetězcem.
Windows
setx AZURE_STORAGE_CONNECTION_STRING "<yourconnectionstring>"
Po přidání proměnné prostředí v Windows, je nutné spustit novou instanci příkazového okna.
Linux
export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"
macOS
export AZURE_STORAGE_CONNECTION_STRING="<yourconnectionstring>"
Restartování programů
Po přidání proměnné prostředí restartujte všechny spuštěné programy, které budou muset proměnnou prostředí přečíst. Před pokračováním například restartujte vývojové prostředí nebo editor.
Objektový model
Služba Azure Blob Storage optimalizovaná pro ukládání velkých objemů nestrukturovaných dat. Jde o data, která nevyhovují konkrétnímu datovému modelu nebo definici, například textová nebo binární data. Úložiště objektů blob nabízí tři typy prostředků:
- Účet úložiště
- Kontejner v účtu úložiště
- Objekt blob v kontejneru
Na následujícím diagramu jsou vztahy těchto prostředků.

K interakci s těmito prostředky použijte následující třídy Jazyka Java:
- BlobServiceClient:Třída
BlobServiceClientumožňuje manipulovat s Azure Storage a kontejnery objektů blob. Účet úložiště poskytuje obor názvů nejvyšší úrovně pro Blob service. - BlobServiceClientBuilder:Třída poskytuje rozhraní API fluent builderu, které pomáhá s konfigurací
BlobServiceClientBuildera vytvářením instancíBlobServiceClientobjektů. - BlobContainerClient:Třída
BlobContainerClientumožňuje manipulovat s Azure Storage kontejnery a jejich objekty blob. - BlobClient:Třída
BlobClientumožňuje manipulovat s Azure Storage objekty blob. - BlobItem:Třída
BlobItempředstavuje jednotlivé objekty blob vrácené voláním metody listBlobs.
Příklady kódu
Tyto příklady fragmentů kódu ukazují, jak pomocí klientské knihovny Azure Blob Storage pro Javu provést následující:
- Získání připojovacího řetězce
- Vytvoření kontejneru
- Upload objektů blob do kontejneru
- Seznam objektů blob v kontejneru
- Stáhnout objekty blob
- Odstranění kontejneru
Získání připojovacího řetězce
Následující kód načte připojovací řetězec pro účet úložiště z proměnné prostředí vytvořené v části Konfigurace připojovacího řetězce úložiště.
Do metody přidejte tento Main kód:
System.out.println("Azure Blob Storage v12 - Java quickstart sample\n");
// Retrieve the connection string for use with the application. The storage
// connection string is stored in an environment variable on the machine
// running the application called AZURE_STORAGE_CONNECTION_STRING. If the environment variable
// is created after the application is launched in a console or with
// Visual Studio, the shell or application needs to be closed and reloaded
// to take the environment variable into account.
String connectStr = System.getenv("AZURE_STORAGE_CONNECTION_STRING");
Vytvoření kontejneru
Rozhodněte se o názvu nového kontejneru. Následující kód připojí k názvu kontejneru hodnotu UUID, aby se zajistilo, že bude jedinečný.
Důležité
Názvy kontejnerů musí být malými písmeny. Další informace o pojmenování kontejnerů a objektů blob najdete v tématu Názvy kontejnerů, objektů blob a metadat a odkazování na ně.
Dále vytvořte instanci třídy BlobContainerClient a potom zavolejte metodu create, která ve skutečnosti vytvoří kontejner ve vašem účtu úložiště.
Na konec metody přidejte tento Main kód:
// Create a BlobServiceClient object which will be used to create a container client
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder().connectionString(connectStr).buildClient();
//Create a unique name for the container
String containerName = "quickstartblobs" + java.util.UUID.randomUUID();
// Create the container and return a container client object
BlobContainerClient containerClient = blobServiceClient.createBlobContainer(containerName);
Upload objektů blob do kontejneru
Následující fragment kódu:
- Vytvoří textový soubor v místním adresáři dat.
- Získá odkaz na objekt BlobClient voláním metody getBlobClient v kontejneru z části Vytvoření kontejneru.
- Nahraje místní textový soubor do objektu blob voláním metody uploadFromFile. Tato metoda vytvoří objekt blob, pokud ještě neexistuje, ale nepřepíše ho, pokud už existuje.
Na konec metody přidejte tento Main kód:
// Create a local file in the ./data/ directory for uploading and downloading
String localPath = "./data/";
String fileName = "quickstart" + java.util.UUID.randomUUID() + ".txt";
File localFile = new File(localPath + fileName);
// Write text to the file
FileWriter writer = new FileWriter(localPath + fileName, true);
writer.write("Hello, World!");
writer.close();
// Get a reference to a blob
BlobClient blobClient = containerClient.getBlobClient(fileName);
System.out.println("\nUploading to Blob storage as blob:\n\t" + blobClient.getBlobUrl());
// Upload the blob
blobClient.uploadFromFile(localPath + fileName);
Seznam objektů blob v kontejneru
Vypište objekty blob v kontejneru voláním metody listBlobs. V tomto případě se do kontejneru přidal pouze jeden objekt blob, takže operace výpisu vrátí pouze tento jeden objekt blob.
Na konec metody přidejte tento Main kód:
System.out.println("\nListing blobs...");
// List the blob(s) in the container.
for (BlobItem blobItem : containerClient.listBlobs()) {
System.out.println("\t" + blobItem.getName());
}
Stáhnout objekty blob
Stáhněte dříve vytvořený objekt blob voláním metody downloadToFile. Příklad kódu přidá k názvu souboru příponu "DOWNLOAD", abyste viděli oba soubory v místním systému souborů.
Na konec metody přidejte tento Main kód:
// Download the blob to a local file
// Append the string "DOWNLOAD" before the .txt extension so that you can see both files.
String downloadFileName = fileName.replace(".txt", "DOWNLOAD.txt");
File downloadedFile = new File(localPath + downloadFileName);
System.out.println("\nDownloading blob to\n\t " + localPath + downloadFileName);
blobClient.downloadToFile(localPath + downloadFileName);
Odstranění kontejneru
Následující kód vyčistí prostředky vytvořené aplikací odebráním celého kontejneru pomocí metody delete. Odstraní také místní soubory vytvořené aplikací.
Aplikace se pozastaví pro vstup uživatele zavolám před odstraněním objektu System.console().readLine() blob, kontejneru a místních souborů. Je to dobrá šance ověřit, že se prostředky před odstraněním správně vytvořily.
Na konec metody přidejte tento Main kód:
// Clean up
System.out.println("\nPress the Enter key to begin clean up");
System.console().readLine();
System.out.println("Deleting blob container...");
containerClient.delete();
System.out.println("Deleting the local source and downloaded files...");
localFile.delete();
downloadedFile.delete();
System.out.println("Done");
Spuštění kódu
Tato aplikace vytvoří testovací soubor v místní složce a nahraje ho do úložiště objektů blob. Příklad pak vypíše objekty blob v kontejneru a stáhne soubor s novým názvem, abyste mohli porovnat staré a nové soubory.
Přejděte do adresáře, který obsahujepom.xml a zkompilujte projekt pomocí následujícího mvn příkazu.
mvn compile
Pak Sestavte balíček.
mvn package
Spusťte následující mvn příkaz, který aplikaci spustí.
mvn exec:java -Dexec.mainClass="com.blobs.quickstart.App" -Dexec.cleanupDaemonThreads=false
Výstup aplikace je podobný následujícímu příkladu:
Azure Blob Storage v12 - Java quickstart sample
Uploading to Blob storage as blob:
https://mystorageacct.blob.core.windows.net/quickstartblobsf9aa68a5-260e-47e6-bea2-2dcfcfa1fd9a/quickstarta9c3a53e-ae9d-4863-8b34-f3d807992d65.txt
Listing blobs...
quickstarta9c3a53e-ae9d-4863-8b34-f3d807992d65.txt
Downloading blob to
./data/quickstarta9c3a53e-ae9d-4863-8b34-f3d807992d65DOWNLOAD.txt
Press the Enter key to begin clean up
Deleting blob container...
Deleting the local source and downloaded files...
Done
Než zahájíte proces vyčištění, vyhledejte tyto dva soubory ve složce dat . Můžete je otevřít a podívat se, že jsou identické.
Po ověření souborů stiskněte klávesu ENTER , aby se odstranily soubory testu, a dokončete ukázku.
Další kroky
V tomto rychlém startu jste zjistili, jak nahrávat, stahovat a vypisovat objekty BLOB pomocí Java.
Pokud chcete zobrazit ukázkové aplikace služby Blob Storage, pokračujte:
- Další informace najdete v tématu sada Azure SDK pro jazyk Java.
- Výukové programy, ukázky, rychlé starty a další dokumentace najdete na webu Azure pro vývojáře v jazyce Java pro Cloud.