Auflisten von Blobcontainern mit .NET
Wenn Sie die Container in einem Azure Storage Konto über den Code auflisten, können Sie eine Reihe von Optionen angeben, um zu steuern, wie Ergebnisse von Azure Storage zurückgegeben werden. In diesem Artikel wird beschrieben, wie Container mit der Azure Storage-Clientbibliothek für .NET aufgelistet werden.
Voraussetzungen
- Azure-Abonnement – Erstellen eines kostenlosen Kontos
- Azure Storage-Konto – Erstellen eines Speicherkontos
- Neuestes .NET SDK für Ihr Betriebssystem. Laden Sie unbedingt das SDK und nicht die Runtime herunter.
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 .NET einrichten. Die Schritte umfassen die Paketinstallation, das Hinzufügen von using
-Anweisungen und das Erstellen eines autorisierten Clientobjekts. Ausführlichere Informationen finden Sie unter Erste Schritte mit Azure Blob Storage und .NET.
Installieren von Paketen
Installieren Sie in Ihrem Projektverzeichnis mithilfe des Befehls dotnet add package
Pakete für die Azure Blob Storage- und Azure Identity-Clientbibliotheken. Für kennwortlose Verbindungen mit Azure-Diensten wird das Azure.Identity-Paket benötigt.
dotnet add package Azure.Storage.Blobs
dotnet add package Azure.Identity
Fügen Sie Anweisungen vom Typ using
hinzu.
Fügen Sie diese using
-Anweisungen am Anfang der Codedatei hinzu:
using Azure.Identity;
using Azure.Storage.Blobs;
using Azure.Storage.Blobs.Models;
using Azure.Storage.Blobs.Specialized;
Einige Codebeispiele in diesem Artikel erfordern möglicherweise zusätzliche using
-Anweisungen.
Erstellen eines Clientobjekts
Um eine App mit Blob Storage zu verbinden, erstellen Sie eine Instanz von BlobServiceClient. Das folgende Beispiel zeigt, wie Sie ein Clientobjekt mithilfe von DefaultAzureCredential
für die Autorisierung erstellen:
public BlobServiceClient GetBlobServiceClient(string accountName)
{
BlobServiceClient client = new(
new Uri($"https://{accountName}.blob.core.windows.net"),
new DefaultAzureCredential());
return client;
}
Sie können einen Dienstclient für die Abhängigkeitsinjektion in einer .NET-App registrieren.
Sie können auch Clientobjekte für bestimmte Container oder Blobs erstellen. Weitere Informationen zum Erstellen und Verwalten von Clientobjekten finden Sie unter Erstellen und Verwalten von Clientobjekten, die mit Datenressourcen interagieren.
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).
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 Ihrem Speicherkonto eine der folgenden Methoden auf:
Diese Methoden geben eine Liste von BlobContainerItem-Objekten zurück. Container werden lexikalisch nach Namen sortiert.
Festlegen der Anzahl der zurückgegebenen Ergebnisse
Standardmäßig gibt ein Auflistungsvorgang bis zu 5000 Ergebnisse in einem Durchgang zurück, Sie können jedoch die Anzahl der Ergebnisse angeben, die von jedem Auflistungsvorgang zurückgegeben werden soll. 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 .NET.
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.
Containermetadaten einschließen
Wenn Containermetadaten in den Ergebnissen enthalten sein sollen, geben Sie für die Enumeration „BlobContainerTraits“ den Wert Metadata
an. Da Azure Storage für jeden zurückgegebenen Container Metadaten enthält, müssen Sie diese nicht zusätzlich abrufen.
Einschließen gelöschter Container
Um vorläufig gelöschte Container in den Ergebnissen einzuschließen, geben Sie den Deleted
Wert für die BlobContainerStates-Enumeration an.
Codebeispiel: Auflisten von Containern
Im folgenden Beispiel werden die Container in einem Speicherkonto, die mit einem angegebenen Präfix beginnen, asynchron aufgelistet. Das Beispiel listet Container auf, die mit dem angegebenen Präfix beginnen, und gibt die angegebene Anzahl von Ergebnissen pro Aufruf an den Auflistungsvorgang zurück. Danach wird das Fortsetzungstoken verwendet, um das nächste Segment von Ergebnissen abzurufen. Im Beispiel werden mit den Ergebnissen auch Containermetadaten zurückgegeben.
async static Task ListContainers(BlobServiceClient blobServiceClient,
string prefix,
int? segmentSize)
{
try
{
// Call the listing operation and enumerate the result segment.
var resultSegment =
blobServiceClient.GetBlobContainersAsync(BlobContainerTraits.Metadata, prefix, default)
.AsPages(default, segmentSize);
await foreach (Azure.Page<BlobContainerItem> containerPage in resultSegment)
{
foreach (BlobContainerItem containerItem in containerPage.Values)
{
Console.WriteLine("Container name: {0}", containerItem.Name);
}
Console.WriteLine();
}
}
catch (RequestFailedException e)
{
Console.WriteLine(e.Message);
Console.ReadLine();
throw;
}
}
Ressourcen
Weitere Informationen zum Auflisten von Containern mithilfe der Azure Blob Storage-Clientbibliothek für .NET finden Sie in den folgenden Ressourcen.
REST-API-Vorgänge
Das Azure SDK für .NET 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 .NET-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 .NET. Weitere Informationen finden Sie in der vollständigen Liste der Entwicklerleitfadenartikel unter Erstellen Ihrer .NET-App.