Sdílet prostřednictvím


Výpis kontejnerů objektů blob pomocí Javy

Když vypíšete kontejnery v účtu Azure Storage z kódu, můžete zadat několik možností pro správu způsobu vrácení výsledků ze služby Azure Storage. Tento článek ukazuje, jak vypsat kontejnery pomocí klientské knihovny Azure Storage pro Javu.

Požadavky

Nastavení prostředí

Pokud nemáte existující projekt, v této části se dozvíte, jak nastavit projekt pro práci s klientskou knihovnou Azure Blob Storage pro Javu. Další informace najdete v tématu Začínáme se službou Azure Blob Storage a Javou.

Pokud chcete pracovat s příklady kódu v tomto článku, nastavte projekt pomocí následujícího postupu.

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.

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.

Přidání příkazů importu

Přidejte následující příkazy import:

import com.azure.core.http.rest.*;
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;

Autorizace

Autorizační mechanismus musí mít potřebná oprávnění k výpisu kontejnerů objektů blob. K autorizaci pomocí Microsoft Entra ID (doporučeno) potřebujete předdefinovanou roli Přispěvatel dat objektů blob služby Azure RBAC nebo vyšší. Další informace najdete v pokynech k autorizaci pro seznam kontejnerů (REST API).

Vytvoření objektu klienta

Pokud chcete připojit aplikaci ke službě Blob Storage, vytvořte instanci BlobServiceClient.

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

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.

O možnostech výpisu kontejnerů

Při výpisu kontejnerů z kódu můžete zadat možnosti pro správu způsobu vrácení výsledků ze služby Azure Storage. Můžete zadat počet výsledků, které se mají vrátit v každé sadě výsledků, a pak načíst následující sady. Výsledky můžete také filtrovat podle předpony a vrátit metadata kontejneru s výsledky. Tyto možnosti jsou popsány v následujících částech.

Pokud chcete vypsat kontejnery v účtu úložiště, zavolejte následující metodu:

Tato metoda vrátí iterable typu BlobContainerItem. Kontejnery jsou seřazené lexicicky podle názvu.

Správa počtu vrácených výsledků

Ve výchozím nastavení vrátí operace výpisu najednou až 5 000 výsledků. Pokud chcete vrátit menší sadu výsledků, zadejte nenulovou hodnotu pro velikost stránky výsledků, která se má vrátit. Tuto hodnotu můžete nastavit pomocí následující metody:

Příklady uvedené v tomto článku ukazují, jak vrátit výsledky na stránkách. Další informace o konceptech stránkování najdete v tématu Stránkování pomocí sady Azure SDK pro Javu.

Filtrování výsledků pomocí předpony

Pokud chcete filtrovat seznam kontejnerů, zadejte řetězec pro prefix parametr. Řetězec předpony může obsahovat jeden nebo více znaků. Azure Storage pak vrátí pouze kontejnery, jejichž názvy začínají danou předponou. Tuto hodnotu můžete nastavit pomocí následující metody:

Zahrnout metadata kontejneru

Pokud chcete do výsledků zahrnout metadata kontejneru, vytvořte BlobContainerListDetails instanci a předejte true ji následující metodě:

Pak předejte BlobContainerListDetails objekt následující metodě:

Zahrnutí odstraněných kontejnerů

Pokud chcete do výsledků zahrnout obnovitelné odstraněné kontejnery, vytvořte BlobContainerListDetails instanci a předejte true ji následující metodě:

Pak předejte BlobContainerListDetails objekt následující metodě:

Příklady kódu

Následující příklad uvádí kontejnery a filtruje výsledky podle zadané předpony:

public void listContainers(BlobServiceClient blobServiceClient) {
    // Set a prefix to filter results based on a specified character or string
    ListBlobContainersOptions options = new ListBlobContainersOptions()
            .setPrefix("container-");

    System.out.println("List containers:");
    for (BlobContainerItem blobContainerItem : blobServiceClient.listBlobContainers(options, null)) {
        System.out.printf("Container name: %s%n", blobContainerItem.getName());
    }
}

Můžete také vrátit menší sadu výsledků zadáním velikosti stránky výsledků, která se má vrátit:

public void listContainersWithPaging(BlobServiceClient blobServiceClient) {
    // Set a prefix to filter results and specify a page limit
    ListBlobContainersOptions options = new ListBlobContainersOptions()
            .setMaxResultsPerPage(2)  // Low number for demonstration purposes
            .setPrefix("container-");

    int i = 0;
    Iterable<PagedResponse<BlobContainerItem>> blobContainerPages = blobServiceClient
            .listBlobContainers(options, null).iterableByPage();
    for (PagedResponse<BlobContainerItem> page : blobContainerPages) {
        System.out.printf("Page %d%n", ++i);
        page.getElements().forEach(container -> {
            System.out.printf("Name: %s%n", container.getName());
        });
    }
}

Zdroje informací

Další informace o výpisu kontejnerů pomocí klientské knihovny Azure Blob Storage pro Javu najdete v následujících zdrojích informací.

Ukázky kódu

Operace rozhraní REST API

Sada Azure SDK pro Javu obsahuje knihovny, které jsou postavené na rozhraní Azure REST API a umožňují interakci s operacemi rozhraní REST API prostřednictvím známých paradigmat Javy. Metody klientské knihovny pro výpis kontejnerů používají následující operaci rozhraní REST API:

Prostředky klientské knihovny

Viz také

  • Tento článek je součástí příručky pro vývojáře služby Blob Storage pro Javu. Další informace najdete v úplném seznamu článků příručky pro vývojáře na webu Sestavení aplikace v Javě.