Auflisten von Blobcontainern mit JavaScript
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 mithilfe der Azure Storage-Clientbibliothek für JavaScript aufgelistet werden.
Voraussetzungen
- Bei den Beispielen in diesem Artikel wird davon ausgegangen, dass Sie bereits ein Projekt eingerichtet haben, das mit der Azure Blob Storage Clientbibliothek für JavaScript arbeitet. Informationen zum Einrichten Ihres Projekts – einschließlich Paketinstallation, Importieren von Modulen und Erstellen eines autorisierten Clientobjekts für die Verwendung mit Datenressourcen finden Sie unter Erste Schritte mit Azure Blob Storage und JavaScript.
- Der Autorisierungsmechanismus muss über Berechtigungen zum Auflisten von Blobcontainern verfügen. Weitere Informationen finden Sie im Autorisierungsleitfaden für die folgenden REST-API-Vorgänge:
Zu Containerauflistungsoptionen
Zum Auflisten der Container in Ihrem Speicherkonto erstellen Sie ein BlobServiceClient-Objekt, und rufen Sie die folgende Methode auf:
- BlobServiceClient. listContainers
Auflisten von Containern mit optionalem Präfix
Standardmäßig werden durch einen einzelnen Auflistungsvorgang bis zu 5.000 Ergebnisse zurückgegeben.
Die Methode „BlobServiceClient.listContainers“ gibt eine Liste von ContainerItem-Objekten zurück. Verwenden Sie „containerItem.name“ zum Erstellen eines ContainerClient-Objekts, um ein vollständigeres ContainerProperties-Objekt abzurufen.
async function listContainers(blobServiceClient, containerNamePrefix) {
const options = {
includeDeleted: false,
includeMetadata: true,
includeSystem: true,
prefix: containerNamePrefix
}
for await (const containerItem of blobServiceClient.listContainers(options)) {
// ContainerItem
console.log(`For-await list: ${containerItem.name}`);
// ContainerClient
const containerClient = blobServiceClient.getContainerClient(containerItem.name);
// ... do something with container
}
}
Auflisten von Containern mit Paging
Wenn Sie einen kleineren Ergebnissatz wünschen, geben Sie einen Wert ungleich NULL für die Größe der zurückzugebenden Ergebnisseite an.
Wenn Ihr Speicherkonto mehr als 5000 Container enthält oder wenn Sie eine Seitengröße angegeben haben, aufgrund deren der Auflistungsvorgang eine Teilmenge der Container im Speicherkonto zurückgibt, gibt Azure Storage ein Fortsetzungstoken mit der Liste der Container zurück. Ein Fortsetzungstoken ist ein nicht transparenter Wert, den Sie verwenden können, um den nächsten Satz von Ergebnissen aus Azure Storage abzurufen.
Überprüfen Sie im Code den Wert des Fortsetzungstokens, um zu bestimmen, ob er leer ist. Wenn das Fortsetzungstoken leer ist, sind die Ergebnisse vollständig. Wenn das Fortsetzungstoken nicht leer ist, rufen Sie die Auflistungsmethode erneut auf, und übergeben Sie das Fortsetzungstoken, um den nächsten Ergebnissatz abzurufen. Dieser Vorgang wird so lange wiederholt, bis das Fortsetzungstoken leer ist.
async function listContainersWithPagingMarker(blobServiceClient) {
// add prefix to filter list
const containerNamePrefix = '';
// page size
const maxPageSize = 2;
const options = {
includeDeleted: false,
includeMetadata: true,
includeSystem: true,
prefix: containerNamePrefix
}
let i = 1;
let marker;
let iterator = blobServiceClient.listContainers(options).byPage({ maxPageSize });
let response = (await iterator.next()).value;
// Prints 2 container names
if (response.containerItems) {
for (const container of response.containerItems) {
console.log(`IteratorPaged: Container ${i++}: ${container.name}`);
}
}
// Gets next marker
marker = response.continuationToken;
// Passing next marker as continuationToken
iterator = blobServiceClient.listContainers().byPage({ continuationToken: marker, maxPageSize: maxPageSize * 2 });
response = (await iterator.next()).value;
// Print next 4 container names
if (response.containerItems) {
for (const container of response.containerItems) {
console.log(`Container ${i++}: ${container.name}`);
}
}
}
Verwenden Sie den Parameter „options“ bei der Methode ListContainers, um Ergebnisse mit einem Präfix zu filtern.
Filtern von Ergebnissen mit einem Präfix
Geben Sie zum Filtern der Liste von Containern eine Zeichenfolge für die Eigenschaft prefix 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.
async function listContainers(blobServiceClient, containerNamePrefix) {
const options = {
includeDeleted: false,
includeMetadata: true,
includeSystem: true,
// filter with prefix
prefix: containerNamePrefix
}
for await (const containerItem of blobServiceClient.listContainers(options)) {
// do something with containerItem
}
}
Einbeziehen von Metadaten in Ergebnisse
Wenn Containermetadaten zusammen mit den Ergebnissen zurückgegeben werden sollen, geben Sie für die Enumeration „BlobContainerTraits“ den Wert metadata an. Weil Azure Storage Metadaten in jeden zurückgegebenen Container einbezieht, müssen Sie diese Metadaten nicht als separaten Vorgang abrufen.
async function listContainers(blobServiceClient, containerNamePrefix) {
const options = {
includeDeleted: false,
includeSystem: true,
prefix: containerNamePrefix,
// include metadata
includeMetadata: true,
}
for await (const containerItem of blobServiceClient.listContainers(options)) {
// do something with containerItem
}
}
Ressourcen
Weitere Informationen zum Auflisten von Containern mithilfe der Azure Blob Storage-Clientbibliothek für JavaScript finden Sie in den folgenden Ressourcen.
REST-API-Vorgänge
Das Azure SDK für JavaScript 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 JavaScript-Paradigmen. Die Methoden der Clientbibliothek zum Auflisten von Containern verwenden den folgenden REST-API-Vorgang:
- List Containers (REST-API)