Partage via


Répertorier les conteneurs d’objets blob avec JavaScript

Lorsque vous répertoriez les conteneurs dans un compte de stockage Azure à partir de votre code, vous pouvez spécifier un certain nombre d’options pour gérer la façon dont les résultats sont retournés à partir du stockage Azure. Cet article explique comment répertorier les conteneurs à l’aide de la bibliothèque de client de stockage Azure pour JavaScript.

Prérequis

  • Les exemples de cet article supposent que vous disposez déjà d'un projet configuré pour fonctionner avec la bibliothèque client Azure Blob Storage pour JavaScript. Pour en savoir plus sur la configuration de votre projet, y compris l’installation du package, l’importation de modules et la création d’un objet client autorisé à utiliser les ressources de données, consultez Prise en main de Stockage Blob Azure et JavaScript.
  • Le mécanisme d’autorisation doit disposer des autorisations nécessaires pour répertorier les conteneurs d’objets blob. Pour en savoir plus, consultez les conseils d’autorisation pour l’opération d’API REST suivante :

À propos des options de liste de conteneurs

Pour lister les conteneurs de votre compte de stockage, créez un objet BlobServiceClient, puis appelez la méthode suivante :

Répertorier les conteneurs avec un préfixe facultatif

Par défaut, une opération de dressage de liste renvoie jusqu’à 5 000 résultats à la fois.

BlobServiceClient.listContainers retourne une liste d’objets ContainerItem. Utilisez containerItem.name pour créer un ContainerClient afin d’obtenir un objet ContainerProperties plus complet.

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

Répertorier les conteneurs avec pagination

Pour retourner un ensemble de résultats plus petit, fournissez une valeur différente de zéro pour la taille de la page de résultats à retourner.

Si votre compte de stockage contient plus de 5000 conteneurs, ou si vous avez spécifié une taille de page telle que l’opération de création de liste retourne un sous-ensemble de conteneurs dans le compte de stockage, le Stockage Azure retourne un jeton de continuation avec la liste des conteneurs. Un jeton de continuation est une valeur opaque que vous pouvez utiliser pour récupérer le jeu de résultats suivant à partir du stockage Azure.

Dans votre code, vérifiez la valeur du jeton de continuation pour déterminer s’il est vide. Quand le jeton de continuation est vide, l’ensemble de résultats est complet. Si le jeton de continuation n’est pas vide, rappelez la méthode de création de liste, en lui passant le jeton de continuation pour récupérer l’ensemble de résultats suivant, jusqu’à ce que le jeton de continuation soit vide.

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

Utilisez le paramètre options de la méthode listContainers pour filtrer les résultats avec un préfixe.

Filtrez les résultats avec un préfixe

Pour filtrer la liste des conteneurs, spécifiez une chaîne pour la propriété prefix. La chaîne de préfixe peut inclure un ou plusieurs caractères. Le stockage Azure retourne alors uniquement les conteneurs dont les noms commencent par ce préfixe.

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

  }
}

Inclure des métadonnées dans les résultats

Pour retourner les métadonnées de conteneur avec les résultats, spécifiez la valeur des métadonnées pour l’énumération BlobContainerTraits. Stockage Azure inclut des métadonnées avec chaque conteneur renvoyé ; vous n’avez donc pas besoin de récupérer les métadonnées du conteneur dans le cadre d’une opération distincte.

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

  }
}

Ressources

Pour en savoir plus sur la création de listes de conteneurs à l’aide de la bibliothèque de client Stockage Blob Azure pour JavaScript, consultez les ressources suivantes.

Opérations de l'API REST

Le Kit de développement logiciel (SDK) Azure pour JavaScript contient des bibliothèques qui s'appuient sur l'API REST Azure, vous permettant d’interagir avec les opérations de l’API REST par le biais de paradigmes JavaScript familiers. Les méthodes de bibliothèque de client pour le listing de conteneurs utilisent l’opération d’API REST suivante :

Exemples de code

Ressources de bibliothèque cliente

Voir aussi