Partager via


Utiliser des balises d’index d’objet blob pour gérer et trouver des données avec TypeScript

Cet article explique comment utiliser des balises d’index de blob pour gérer et rechercher des données en utilisant la Bibliothèque de client Stockage Azure pour JavaScript.

Prérequis

À propos des balises d'index blob

Les balises d’index de blob catégorisent les données de votre compte de stockage à l’aide d’attributs de balise clé-valeur. Ces balises sont automatiquement indexées et exposées en tant qu’index multidimensionnel pouvant faire l’objet d’une recherche pour trouver facilement des données. Cet article explique comment définir, obtenir et trouver des données à l’aide de balises d’index d’objets blob.

Les balises d’index blob ne sont pas prises en charge pour les comptes de stockage dont l’espace de noms hiérarchique est activé. Pour en savoir plus sur la fonctionnalité des balises d’index blob, ainsi que sur les problèmes connus et les limitations, consultez Gérer et rechercher des données blob Azure dans l’index d’objet blob.

Définir des étiquettes

Vous pouvez définir des balises d’index si votre code a autorisé l’accès aux données Blob par l’un des mécanismes suivants :

Pour plus d’informations, consultez Définition des balises d’index d’objet blob.

Pour définir des balises au moment du chargement de l’objet blob, créez un BlobClient, puis utilisez la méthode suivante :

Cet exemple effectue cette tâche.

export async function setBlobTags(
  blockBlobClient: BlockBlobClient,
  tags: Tags
): Promise<void> {
  // Set tags
  const result = await blockBlobClient.setTags(tags);
  if (result.errorCode) throw Error(result.errorCode);

  console.log(`tags set for ${blockBlobClient.name}`);
}

Vous pouvez supprimer toutes les balises en passant un objet JSON vide dans la méthode setTags.

Articles connexes
Gérer et rechercher des données blob Azure dans l’index d’objet blob
Set Blob Tags (API REST)

Obtenir des balises

Vous pouvez obtenir des balises d’index si votre code a autorisé l’accès aux données Blob par l’un des mécanismes suivants :

Pour plus d’informations, consultez Obtention et liste des balises d’index de blob.

Pour obtenir des balises, créez un BlobClient, puis utilisez la méthode suivante :

L’exemple suivant montre comment obtenir et itérer sur les balises de l’objet Blob.

export async function getBlobTags(
  blockBlobClient: BlockBlobClient
): Promise<Tags> {
  const getTagsResponse: BlobGetTagsResponse = await blockBlobClient.getTags();

  if (getTagsResponse.errorCode) throw Error(getTagsResponse.errorCode);

  // Tags: Record<string, string>
  const tags: Tags = getTagsResponse.tags;

  console.log(`tags for ${blockBlobClient.name}`);

  // Print out name/value pairs
  Object.keys(tags).map((tag) => console.log(`${[tag]}: ${tags[tag]}`));

  return tags;
}

Filtrer et rechercher des données avec des balises d’index de blobs

Vous pouvez utiliser des balises d’index pour rechercher et filtrer des données si votre code a autorisé l’accès aux données blob par l’un des mécanismes suivants :

Pour plus d’informations, consultez Recherche de données en utilisant les balises d’index de blob.

Notes

Vous ne pouvez pas utiliser de balises d’index pour récupérer des versions précédentes. Les balises pour les versions précédentes ne sont pas passées au moteur d’index de blob. Pour plus d’informations, consultez Conditions et problèmes connus.

Les données sont interrogées avec un objet JSON envoyé sous forme de chaîne. Les propriétés n’ont pas besoin d’avoir des guillemets de chaîne supplémentaires, mais les valeurs ont besoin de guillemets de chaîne supplémentaires.

Le tableau suivant présente des chaînes de requête :

Chaîne de requête pour les balises (tagOdataQuery) Description
id='1' AND project='billing' Filtrer les objets Blob sur tous les conteneurs en fonction de ces deux propriétés
owner='PhillyProject' AND createdOn >= '2021-12' AND createdOn <= '2022-06' Filtrez les objets Blob sur tous les conteneurs en fonction de la valeur de propriété stricte pour owner et de la plage de dates pour la propriété createdOn.
@container = 'my-container' AND createdBy = 'Jill' Filtrer par conteneur et par propriété spécifique. Dans cette requête, createdBy est une correspondance de texte et n’indique pas de correspondance d’autorisation via Active Directory.

Pour rechercher des objets blob, créez un BlobClient , puis utilisez la méthode suivante :

L’exemple suivant recherche tous les objets Blob correspondant au paramètre tagOdataQuery.

async function findBlobsByQuery(
  blobServiceClient: BlobServiceClient,
  tagOdataQuery: string
): Promise<void> {
  // page size
  const maxPageSize = 10;

  let i = 1;

  const listOptions: ServiceFindBlobByTagsOptions = {};

  let iterator = blobServiceClient
    .findBlobsByTags(tagOdataQuery, listOptions)
    .byPage({ maxPageSize });
  let response = (await iterator.next()).value;

  // Prints blob names
  if (response.blobs) {
    for (const blob of response.blobs) {
      console.log(`Blob ${i++}: ${blob.name} - ${JSON.stringify(blob.tags)}`);
    }
  }

  // Gets next marker
  const marker = response.continuationToken;

  // no more blobs
  if (!marker) return;

  // Passing next marker as continuationToken
  iterator = blobServiceClient
    .findBlobsByTags(tagOdataQuery, listOptions)
    .byPage({ continuationToken: marker, maxPageSize });
  response = (await iterator.next()).value;

  // Prints blob names
  if (response.blobs) {
    for (const blob of response.blobs) {
      console.log(`Blob ${i++}: ${blob.name} - ${JSON.stringify(blob.tags)}`);
    }
  }
}

Par exemple, la sortie de cette fonction montre les objets Blob mis en correspondance et leurs balises, en fonction du code console.log dans la fonction précédente :

response
Blob 1: set-tags-1650565920363-query-by-tag-blob-a-1.txt - {"createdOn":"2022-01","owner":"PhillyProject","project":"set-tags-1650565920363"}

Ressources

Pour en savoir plus sur l’utilisation des balises d’index afin de gérer et rechercher des données à 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 la gestion et l’utilisation des balises d’index blob utilisent les opérations d’API REST suivantes :

Exemples de code

Ressources de bibliothèque cliente

Voir aussi