Auflisten von Blobcontainern mit Java
Wenn Sie die Container in einem Azure Storage-Konto über Code auflisten, können Sie verschiedene Optionen angeben, um zu steuern, wie die Ergebnisse von Azure Storage zurückgegeben werden. In diesem Artikel wird beschrieben, wie Container mit der Azure Storage-Clientbibliothek für Java aufgelistet werden.
Voraussetzungen
- Azure-Abonnement – Erstellen eines kostenlosen Kontos
- Azure Storage-Konto – Erstellen eines Speicherkontos
- Java Development Kit (JDK) Version 8 oder höher (wir empfehlen Version 17 für optimale Benutzererfahrung)
- Für die Projektverwaltung wird in diesem Beispiel Apache Maven verwendet.
Erstellen Ihrer Umgebung
Wenn Sie nicht über ein vorhandenes Projekt verfügen, wird in diesem Abschnitt gezeigt, wie Sie ein Projekt für die Arbeit mit der Azure Blob Storage-Clientbibliothek für Java einrichten. Weitere Informationen finden Sie unter Erste Schritte mit Azure Blob Storage mit Java.
Um die Codebeispiele in diesem Artikel zu verwenden, führen Sie die folgenden Schritte zum Einrichten Ihres Projekts aus.
Hinweis
In diesem Artikel wird das Maven-Buildtool verwendet, um den Beispielcode zu erstellen und auszuführen. Andere Buildtools (beispielsweise Gradle) können ebenfalls mit dem Azure SDK für Java verwendet werden.
Installieren von Paketen
Öffnen Sie die Datei pom.xml
in Ihrem Text-Editor. Installieren Sie die Pakete durch Einbeziehen der BOM-Datei oder Einbeziehen einer direkten Abhängigkeit.
Hinzufügen von Importanweisungen
Fügen Sie die folgenden import
-Anweisungen ein:
import com.azure.core.http.rest.*;
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
Autorisierung
Der Autorisierungsmechanismus muss über die erforderlichen Berechtigungen zum Auflisten von Blobcontainern verfügen. Für die Autorisierung mit Microsoft Entra ID (empfohlen) benötigen Sie mindestens die integrierte Azure RBAC-Rolle Mitwirkender an Storage-Blobdaten. Weitere Informationen finden Sie im Autorisierungsleitfaden für List Containers (REST API).
Erstellen eines Clientobjekts
Um eine App mit Blob Storage zu verbinden, erstellen Sie eine Instanz von BlobServiceClient.
Im folgenden Beispiel wird BlobServiceClientBuilder verwendet, um ein BlobServiceClient
-Objekt mithilfe von DefaultAzureCredential
zu erstellen, und zeigt, wie Container- und Blob-Clients erstellt werden, falls erforderlich:
// 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>");
Weitere Informationen zum Erstellen und Verwalten von Clientobjekten finden Sie unter Erstellen und Verwalten von Clientobjekten, die mit Datenressourcen interagieren.
Zu Containerauflistungsoptionen
Wenn Sie Container über Ihren Code auflisten, können Sie Optionen angeben, um zu steuern, wie Ergebnisse von Azure Storage zurückgegeben werden. Sie können die Anzahl der Ergebnisse festlegen, die in den einzelnen Ergebnissätzen zurückgegeben werden sollen, und dann die nachfolgenden Sätze abrufen. Sie können die Ergebnisse auch nach einem Präfix filtern und Containermetadaten mit den Ergebnissen zurückgeben. Diese Optionen sind in den folgenden Abschnitten beschrieben.
Rufen Sie zum Auflisten von Containern in einem Speicherkonto die folgende Methode auf:
Diese Methode gibt einen Iterable-Wert vom Typ BlobContainerItem zurück. Container werden lexikalisch nach Namen sortiert.
Festlegen der Anzahl der zurückgegebenen Ergebnisse
Standardmäßig werden durch einen einzelnen Auflistungsvorgang bis zu 5.000 Ergebnisse zurückgegeben. Wenn Sie einen kleineren Ergebnissatz wünschen, geben Sie einen Wert ungleich NULL für die Größe der zurückzugebenden Ergebnisseite an. Sie können diesen Wert mit der folgenden Methode festlegen:
Die Beispiele in diesem Artikel zeigen Ihnen, wie Ergebnisse in Seiten zurückgegeben werden. Weitere Informationen zu Paginierungskonzepten finden Sie unter Paginierung mit dem Azure SDK für Java.
Filtern von Ergebnissen mit einem Präfix
Um die Liste der Container zu filtern, geben Sie für den prefix
-Parameter eine Zeichenfolge an. Die Präfixzeichenfolge kann ein oder mehrere Zeichen enthalten. Azure Storage gibt dann nur die Container zurück, deren Namen mit diesem Präfix beginnen. Sie können diesen Wert mit der folgenden Methode festlegen:
Containermetadaten einschließen
Um Containermetadaten in die Ergebnisse einzuschließen, erstellen Sie eine BlobContainerListDetails
Instanz, und übergeben true
Sie sie an die folgende Methode:
Übergeben Sie dann das BlobContainerListDetails
Objekt an die folgende Methode:
Einschließen gelöschter Container
Um vorläufig gelöschte Container in den Ergebnissen einzuschließen, erstellen Sie eine BlobContainerListDetails
Instanz, und übergeben true
Sie sie an die folgende Methode:
Übergeben Sie dann das BlobContainerListDetails
Objekt an die folgende Methode:
Codebeispiele
Im folgenden Beispiel werden Container aufgelistet und die Ergebnisse nach einem angegebenen Präfix gefiltert:
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());
}
}
Sie können auch einen kleineren Ergebnisssatz zurückgeben, indem Sie die Größe der Ergebnisseite angeben, die zurückgegeben werden soll:
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());
});
}
}
Ressourcen
Weitere Informationen zum Auflisten von Containern mithilfe der Azure Blob Storage-Clientbibliothek für Java finden Sie in den folgenden Ressourcen.
Codebeispiele
REST-API-Vorgänge
Das SDK für Java enthält Bibliotheken, die auf der zugrunde liegenden Azure-REST-API basieren, und ermöglicht Ihnen dadurch die Interaktion mit REST-API-Vorgängen über vertraute Java-Paradigmen. Die Methoden der Clientbibliothek zum Auflisten von Containern verwenden den folgenden REST-API-Vorgang:
- List Containers (REST-API)
Ressourcen zur Clientbibliothek
Weitere Informationen
Zugehöriger Inhalt
- Dieser Artikel ist Teil des Blob Storage-Entwicklerleitfadens für Java. Weitere Informationen finden Sie in der vollständigen Liste der Entwicklerleitfadenartikel unter Erstellen Ihrer Java-App.