Dela via


Lista blobcontainrar med JavaScript

När du listar containrarna i ett Azure Storage-konto från koden kan du ange ett antal alternativ för att hantera hur resultatet returneras från Azure Storage. Den här artikeln visar hur du listar containrar med hjälp av Azure Storage-klientbiblioteket för JavaScript.

Förutsättningar

  • Exemplen i den här artikeln förutsätter att du redan har ett projekt konfigurerat för att fungera med Azure Blob Storage-klientbiblioteket för JavaScript. Information om hur du konfigurerar projektet, inklusive paketinstallation, import av moduler och att skapa ett auktoriserat klientobjekt för att arbeta med dataresurser, finns i Kom igång med Azure Blob Storage och JavaScript.
  • Auktoriseringsmekanismen måste ha behörighet att lista blobcontainrar. Mer information finns i auktoriseringsvägledningen för följande REST API-åtgärd:

Om alternativ för containerlistning

Om du vill visa containrar i ditt lagringskonto skapar du ett BlobServiceClient-objekt och anropar sedan följande metod:

Lista containrar med valfritt prefix

Som standard returnerar en listningsåtgärd upp till 5 000 resultat åt gången.

BlobServiceClient.listContainers returnerar en lista över ContainerItem-objekt . Använd containerItem.name för att skapa en ContainerClient för att få ett mer komplett ContainerProperties-objekt .

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 
  }
}

Visa en lista över containrar med växling

Om du vill returnera en mindre uppsättning resultat anger du ett icke-nollvärde för storleken på den resultatsida som ska returneras.

Om ditt lagringskonto innehåller mer än 5 000 containrar, eller om du har angett en sidstorlek så att liståtgärden returnerar en delmängd containrar i lagringskontot, returnerar Azure Storage en fortsättningstoken med listan över containrar. En fortsättningstoken är ett täckande värde som du kan använda för att hämta nästa uppsättning resultat från Azure Storage.

I koden kontrollerar du värdet för fortsättningstoken för att avgöra om den är tom. När fortsättningstoken är tom är resultatuppsättningen klar. Om fortsättningstoken inte är tom anropar du listningsmetoden igen och skickar in fortsättningstoken för att hämta nästa resultatuppsättning tills fortsättningstoken är tom.

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}`);
    }
  }
}

Använd alternativparametern till metoden listContainers för att filtrera resultat med ett prefix.

Filtrera resultat med ett prefix

Om du vill filtrera listan över containrar anger du en sträng för prefixegenskapen. Prefixsträngen kan innehålla ett eller flera tecken. Azure Storage returnerar sedan endast de containrar vars namn börjar med prefixet.

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

  }
}

Inkludera metadata i resultat

Om du vill returnera containermetadata med resultatet anger du metadatavärdet för BlobContainerTraits-uppräkningen. Azure Storage innehåller metadata med varje container som returneras, så du behöver inte hämta containermetadata som en separat åtgärd.

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

  }
}

Resurser

Mer information om hur du listar containrar med hjälp av Azure Blob Storage-klientbiblioteket för JavaScript finns i följande resurser.

REST API-åtgärder

Azure SDK för JavaScript innehåller bibliotek som bygger på Azure REST API, så att du kan interagera med REST API-åtgärder via välbekanta JavaScript-paradigm. Klientbiblioteksmetoderna för att visa containrar använder följande REST API-åtgärd:

Kodexempel

Klientbiblioteksresurser

Se även