Partager via


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 des en-têtes HTTP d’objet Blob

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

Pour définir les propriétés HTTP d’un objet blob, créez un BlobClient, puis appelez BlobClient.setHTTPHeaders. Passez en revue les propriétés BlobHTTPHeaders pour savoir quelles propriétés HTTP vous souhaitez définir. Toutes les propriétés HTTPS qui ne sont pas explicitement définies sont effacées.

/*
properties= {
      blobContentType: 'text/plain',
      blobContentLanguage: 'en-us',
      blobContentEncoding: 'utf-8',
      // all other http properties are cleared
    }
*/
async function setHTTPHeaders(blobClient, headers) {

  await blobClient.setHTTPHeaders(headers);

  console.log(`headers set successfully`);
}

Définir les 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, créez un BlobClient, puis envoyez un objet JSON de paires nom-valeur avec

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

/*
metadata= {
    reviewedBy: 'Bob',
    releasedBy: 'Jill',
}
*/
async function setBlobMetadata(blobClient, metadata) {

  await blobClient.setMetadata(metadata);

  console.log(`metadata set successfully`);

}

Pour lire les métadonnées, obtenez les propriétés de l’objet Blob (indiquées ci-dessous), en faisant spécifiquement référence à la propriété metadata.

Obtenir les propriétés d’un objet blob

L’exemple de code suivant obtient les propriétés système d’un objet Blob, y compris les en-têtes HTTP et les métadonnées, et affiche ces valeurs.

async function getProperties(blobClient) {

  const properties = await blobClient.getProperties();
  console.log(blobClient.name + ' properties: ');

  for (const property in properties) {

    switch (property) {
      // nested properties are stringified and returned as strings
      case 'metadata':
      case 'objectReplicationRules':
        console.log(`    ${property}: ${JSON.stringify(properties[property])}`);
        break;
      default:
        console.log(`    ${property}: ${properties[property]}`);
        break;
    }
  }
}

La sortie de ces lignes console.log ressemble à :

my-blob.txt properties:
    lastModified: Thu Apr 21 2022 13:02:53 GMT-0700 (Pacific Daylight Time)
    createdOn: Thu Apr 21 2022 13:02:53 GMT-0700 (Pacific Daylight Time)
    metadata: {"releasedby":"Jill","reviewedby":"Bob"}
    objectReplicationPolicyId: undefined
    objectReplicationRules: {}
    blobType: BlockBlob
    copyCompletedOn: undefined
    copyStatusDescription: undefined
    copyId: undefined
    copyProgress: undefined
    copySource: undefined
    copyStatus: undefined
    isIncrementalCopy: undefined
    destinationSnapshot: undefined
    leaseDuration: undefined
    leaseState: available
    leaseStatus: unlocked
    contentLength: 19
    contentType: text/plain
    etag: "0x8DA23D1EBA8E607"
    contentMD5: undefined
    contentEncoding: utf-8
    contentDisposition: undefined
    contentLanguage: en-us
    cacheControl: undefined
    blobSequenceNumber: undefined
    clientRequestId: 58da0441-7224-4837-9b4a-547f9a0c7143
    requestId: 26acb38a-001e-0046-27ba-55ef22000000
    version: 2021-04-10
    date: Thu Apr 21 2022 13:02:52 GMT-0700 (Pacific Daylight Time)
    acceptRanges: bytes
    blobCommittedBlockCount: undefined
    isServerEncrypted: true
    encryptionKeySha256: undefined
    encryptionScope: undefined
    accessTier: Hot
    accessTierInferred: true
    archiveStatus: undefined
    accessTierChangedOn: undefined
    versionId: undefined
    isCurrentVersion: undefined
    tagCount: undefined
    expiresOn: undefined
    isSealed: undefined
    rehydratePriority: undefined
    lastAccessed: undefined
    immutabilityPolicyExpiresOn: undefined
    immutabilityPolicyMode: undefined
    legalHold: undefined
    errorCode: undefined
    body: true
    _response: [object Object]
    objectReplicationDestinationPolicyId: undefined
    objectReplicationSourceProperties:

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.

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 :

Exemples de code

Ressources de bibliothèque cliente