Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
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
- Azure-előfizetés – hozzon létre egyet ingyenesen
- Azure Storage-fiók – tárfiók létrehozása
- Java Development Kit (JDK) 8-es vagy újabb verzió (a legjobb élmény érdekében a 17-es verziót javasoljuk)
- Ebben a példában az Apache Maven a projektkezeléshez használatos
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:
- listBlobContainers (blob tárolók listázása)
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:
- Tárolók listázása (REST API)
Ügyfélkódtár erőforrásai
Lásd még
Kapcsolódó tartalom
- Ez a cikk a Java Blob Storage fejlesztői útmutatójának része. További információkért tekintse meg a Java-alkalmazás buildeléséhez kapcsolódó fejlesztői útmutatók teljes listáját.