Gérer les propriétés et les métadonnées blob avec JavaScript

En plus des données qu’ils contiennent, les blobs prennent en charge des propriétés système et des métadonnées définies par l’utilisateur. Cet article présente la gestion des propriétés système et des métadonnées définies par l’utilisateur avec la bibliothèque cliente 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 de packages, l'importation de modules et la création d'un objet client autorisé pour travailler avec des ressources de données, consultez Démarrer avec Azure Blob Storage et JavaScript.
  • Le mécanisme d'autorisation doit disposer des autorisations nécessaires pour utiliser les propriétés ou les métadonnées des objets blob. Pour plus d’informations, consultez les conseils d’autorisation pour les opérations d’API REST suivantes :

À propos des propriétés et des métadonnées

  • Propriétés système : Propriétés système existant sur chaque ressource de stockage blob. Certaines d'entre elles peuvent être lues ou configurées, alors que d'autres sont en lecture seule. En arrière-plan, certaines propriétés système correspondent à certains en-têtes HTTP standard. La bibliothèque cliente de Stockage Azure pour JavaScript gère ces propriétés pour vous.

  • Métadonnées définies par l’utilisateur : ces métadonnées se composent d’une ou plusieurs paires nom/valeur, que vous spécifiez pour une ressource de stockage d’objets blob. Vous pouvez les utiliser pour stocker des valeurs supplémentaires avec la ressource. Les valeurs de métadonnées sont destinées à votre usage personnel et n’affectent pas le comportement de la ressource.

    Les paires nom/valeur de métadonnées sont des en-têtes HTTP valides ; elles doivent donc respecter toutes les restrictions régissant les en-têtes HTTP. Pour plus d’informations sur les exigences de nommage des métadonnées, consultez Noms des métadonnées.

Notes

Les étiquettes d’index d’objet blob permettent également de stocker des attributs clé/valeur arbitraires définis par l’utilisateur en même temps qu’une ressource de stockage d’objet Azure Blob. Bien que similaires à des métadonnées, seules les étiquettes d’index d’objet blob sont indexées automatiquement et peuvent être interrogées par le service blob natif. Les métadonnées ne peuvent pas être indexées et interrogées, sauf si vous utilisez un service distinct, tel que Recherche Azure.

Pour en savoir plus sur cette fonctionnalité, consultez Gérer et rechercher des données dans Stockage Blob Azure avec Blob Index (préversion).

Définir et récupérer des propriétés

Pour définir des propriétés sur un objet blob, utilisez la méthode suivante :

L’exemple de code suivant définit les propriétés système blobContentType et blobContentLanguage sur un blob.

Toutes les propriétés qui ne sont pas explicitement définies sont effacées. L’exemple de code suivant obtient d’abord les propriétés existantes sur l’objet blob, puis les utilise pour remplir les en-têtes qui ne sont pas mis à jour.

async function setHTTPHeaders(blobClient, headers) {
  
  // Get existing properties
  const properties = await blobClient.getProperties();

  // Set the blobContentType and blobContentLanguage headers
  // Populate the remaining headers from the existing properties
  blobHeaders = {
    blobContentType: 'text/plain',
    blobContentLanguage: 'en-us',
    blobContentEncoding: properties.contentEncoding,
    blobCacheControl: properties.cacheControl,
    blobContentDisposition: properties.contentDisposition,
    blobContentMD5: properties.contentMD5
  },

  await blobClient.setHTTPHeaders(blobHeaders);
}

Pour récupérer des propriétés sur un objet blob, utilisez la méthode suivante :

L’exemple de code suivant obtient les propriétés système d’un blob et affiche certaines des valeurs suivantes :

async function getProperties(blobClient) {

  const properties = await blobClient.getProperties();
  
  console.log(`blobType: ${properties.blobType}`);
  console.log(`contentType: ${properties.contentType}`);
  console.log(`contentLength: ${properties.contentLength}`);
  console.log(`lastModified: ${properties.lastModified}`);
}

Définir et récupérer des métadonnées

Vous pouvez indiquer des métadonnées sous la forme de paires nom-valeur sur une ressource d’objet blob ou de conteneur. Pour définir des métadonnées, envoyez un objet Metadata contenant des paires nom-valeur utilisant la méthode suivante :

L’exemple de code suivant définit les métadonnées d’un blob :

async function setBlobMetadata(blobClient, metadata) {
  
  metadata = {
    docType: 'text',
    category: 'reference'
  };

  await blobClient.setMetadata(metadata);
}

Pour récupérer des métadonnées, appelez la méthode getProperties sur votre objet blob pour remplir la collection de métadonnées, puis lisez les valeurs de la propriété metadata. La méthode getProperties récupère les propriétés et les métadonnées de l’objet blob en appelant à la fois l’opération Get Blob Properties et l’opération Get Blob Metadata.

Ressources

Pour en savoir plus sur la gestion des propriétés système et des métadonnées définies par l’utilisateur à l’aide de la bibliothèque cliente Stockage Blob Azure pour JavaScript, consultez les ressources suivantes.

Exemples de code

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 des propriétés système et des métadonnées définies par l’utilisateur utilisent les opérations d’API REST suivantes :

Ressources de bibliothèque cliente