Freigeben über


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:

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:

Codebeispiele

Ressourcen zur Clientbibliothek

Siehe auch