Condividi tramite


Elencare i contenitori BLOB con JavaScript

Quando si elencano i contenitori BLOB in un account di Archiviazione di Azure tramite il codice, è possibile specificare numerose opzioni per gestire il modo in cui i risultati vengono restituiti da Archiviazione di Azure. Questo articolo illustra come elencare i contenitori usando la libreria client di Archiviazione di Azure per JavaScript.

Prerequisiti

  • Gli esempi in questo articolo presuppongono che sia già stato configurato un progetto per l'uso con la libreria client di Archiviazione BLOB di Azure per JavaScript. Per informazioni sulla configurazione del progetto, incluse l'installazione del pacchetto, l'importazione di moduli e la creazione di un oggetto client autorizzato per l'uso con le risorse dati, consultare Introduzione ad Archiviazione BLOB di Azure e JavaScript.
  • Il meccanismo di autorizzazione deve disporre delle autorizzazioni per elencare i contenitori BLOB. Per altre informazioni, vedere le linee guida per l'autorizzazione per l'operazione API REST seguente:

Informazioni sulle opzioni di elenco dei contenitori

Per elencare i contenitori nell'account di archiviazione, creare un oggetto BlobServiceClient e quindi chiamare il metodo seguente:

Elencare i contenitori con un prefisso facoltativo

Per impostazione predefinita, un'operazione di elenco restituisce fino a 5.000 risultati alla volta.

Il metodo BlobServiceClient.listContainers restituisce un elenco di oggetti ContainerItem. Usare containerItem.name per creare un oggetto ContainerClient per ottenere un oggetto ContainerProperties più completo.

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

Elencare i contenitori con l'impaginazione

Per restituire un set di risultati più piccolo, specificare un valore diverso da zero per le dimensioni della pagina dei risultati da restituire.

Se l'account di archiviazione contiene più di 5000 contenitori o se è stato specificato un valore di dimensioni della pagina per fare in modo che l'operazione di elenco restituisca solo un subset dei contenitori nell'account di archiviazione, Archiviazione di Azure restituisce un token di continuazione con l'elenco di contenitori. Un token di continuazione è un valore opaco che è possibile usare per recuperare il set di risultati successivo da Archiviazione di Azure.

Nel codice, controllare il valore del token di continuazione per determinare se è vuoto. Se il token di continuazione è vuoto, il set di risultati è completo. Se il token di continuazione non è vuoto, chiamare di nuovo il metodo di elenco, passando il token di continuazione per recuperare il set di risultati successivo, fino a quando il token di continuazione non diventa vuoto.

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

Usare il parametro options per il metodo listContainers per filtrare i risultati con un prefisso.

Filtrare i risultati con un prefisso

Per filtrare l'elenco dei contenitori, specificare una stringa per la proprietà prefix. La stringa di prefisso può includere uno o più caratteri. Archiviazione di Azure restituisce solo i contenitori i cui nomi iniziano con tale prefisso.

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

  }
}

Includere i metadati nei risultati

Per restituire i metadati dei contenitori con i risultati, specificare il valore metadata per l'enumerazione BlobContainerTraits. Archiviazione di Azure include i metadati con ogni contenitore restituito, dunque non è necessario recuperarli con un'operazione separata.

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

  }
}

Risorse

Per altre informazioni su come elencare i contenitori tramite la libreria client di Archiviazione BLOB di Azure per JavaScript, vedere le risorse seguenti.

Operazioni dell'API REST

Azure SDK per JavaScript contiene librerie basate sull'API REST di Azure che consentono di interagire con le operazioni dell'API REST tramite paradigmi noti di JavaScript. I metodi della libreria client per elencare i contenitori usano l'operazione API REST seguente:

Esempi di codice

Risorse della libreria client

Vedi anche