Megosztás a következőn keresztül:


Blobtárolók listázása Java használatával

Ha egy Azure Storage-fiókban lévő tárolókat listáz a kódból, több lehetőséget is megadhat az eredmények Azure Storage-ból való visszaadására. Ez a cikk bemutatja, hogyan listázhatja a tárolókat a Java-hoz készült Azure Storage ügyfélkódtár használatával.

Előfeltételek

Saját környezet beállítása

Ha nem rendelkezik meglévő projekttel, ez a szakasz bemutatja, hogyan állíthat be egy projektet a Java Azure Blob Storage ügyfélkódtárával való együttműködésre. További információ: Az Azure Blob Storage és a Java használatának első lépései.

A jelen cikkben szereplő példakódok használatához kövesse az alábbi lépéseket a projekt beállításához.

Feljegyzés

Ez a cikk a Maven buildelési eszközével hozza létre és futtatja a példakódot. Más buildelési eszközök, például a Gradle is együttműködnek a Java Azure SDK-val.

Csomagok telepítése

Nyissa meg a pom.xml fájlt a szövegszerkesztőben. Telepítse a csomagokat úgy, hogy belefoglalja a BOM-fájlt, vagy belefoglal egy közvetlen függőséget.

Importálási utasítások hozzáadása

Adja hozzá a következő import-utasításokat:

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

Engedélyezés

Az engedélyezési mechanizmusnak rendelkeznie kell a blobtárolók listázásához szükséges engedélyekkel. A Microsoft Entra ID engedélyezéséhez (ajánlott) szüksége van az Azure RBAC beépített "Storage Blob Data Közreműködő" vagy magasabb szerepkörre. További információkért tekintse meg a List Containers (REST API) engedélyezési útmutatóját.

Ügyfélobjektum létrehozása

Ha egy alkalmazást a Blob Storage-hoz szeretne csatlakoztatni, hozzon létre egy BlobServiceClient-példányt.

Az alábbi példa a BlobServiceClientBuilder használatával BlobServiceClienthoz létre objektumotDefaultAzureCredential, és bemutatja, hogyan hozhat létre tároló- és blobügyfeleket, ha szükséges:

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

Az ügyfélobjektumok létrehozásáról és kezeléséről további információt az adaterőforrásokat kezelő ügyfélobjektumok létrehozása és kezelése című témakörben talál.

A konténerlista lehetőségeiről

Ha tárolókat listáz a kódból, megadhatja az eredmények Azure Storage-ból való visszaadására vonatkozó beállításokat. Megadhatja az egyes találathalmazokban visszaadandó eredmények számát, majd lekérheti a következő halmazokat. Az eredményeket előtaggal is szűrheti, és a tároló metaadatait is visszaadhatja az eredményekkel. Ezeket a lehetőségeket a következő szakaszok ismertetik.

A tárfiók tárolóinak listázásához hívja meg a következő módszert:

Ez a metódus egy BlobContainerItem típusú iterátumot ad vissza. A tárolók név szerint vannak lexikális sorrendben rendezve.

Az eredmény visszaadott értékének kezelése

Alapértelmezés szerint egy listaművelet legfeljebb 5000 eredményt ad vissza egyszerre. Ha kisebb eredményhalmazt szeretne visszaadni, adjon meg egy nemzero értéket a visszaadni kívánt találatok oldalának méretéhez. Ezt az értéket a következő módszerrel állíthatja be:

A cikkben bemutatott példák bemutatják, hogyan adhat vissza eredményeket a lapokban. A lapozási fogalmakkal kapcsolatos további információkért lásd : Pagination with the Azure SDK for Java.

Eredmények szűrése előtaggal

A tárolók listájának szűréséhez adjon meg egy sztringet a prefix paraméterhez. Az előtag sztringje egy vagy több karaktert tartalmazhat. Az Azure Storage ezután csak azokat a tárolókat adja vissza, amelyeknek a neve ezzel az előtaggal kezdődik. Ezt az értéket a következő módszerrel állíthatja be:

Tároló metaadatainak belefoglalása

A tároló metaadatainak az eredményekhez való hozzáadásához létre kell hoznia egy példányt BlobContainerListDetails , majd ezt a true függvénynek kell adnia.

Ezután adja át az BlobContainerListDetails objektumot a következő metódusnak:

Törölt tárolók belefoglalása

A lágyan törölt tárolók eredmények közötti szerepeltetéséhez hozzon létre egy BlobContainerListDetails példányt, és adja át true a következő metódusnak:

Ezután adja át az BlobContainerListDetails objektumot a következő metódusnak:

Kódpéldák

Az alábbi példa a tárolókat sorolja fel, és egy megadott előtaggal szűri az eredményeket:

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());
    }
}

Kisebb eredményhalmazt is visszaadhat, ha megadja a visszaadni kívánt találatok oldalának méretét:

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());
        });
    }
}

Források

A tárolók Java-hoz készült Azure Blob Storage-ügyfélkódtár használatával történő listázásáról az alábbi forrásokban olvashat bővebben.

Kódminták

REST API-műveletek

Az Azure SDK for Java olyan kódtárakat tartalmaz, amelyek az Azure REST API-ra épülnek, lehetővé téve a REST API-műveletek használatát ismert Java-paradigmákon keresztül. A tárolók listázásához használt ügyfélkódtár-metódusok a következő REST API-műveletet használják:

Ügyfélkódtár erőforrásai

Lásd még