Partilhar via


Gerenciar propriedades de blob e metadados com JavaScript

Além dos dados que contêm, os blobs suportam propriedades do sistema e metadados definidos pelo usuário. Este artigo mostra como gerenciar propriedades do sistema e metadados definidos pelo usuário com a biblioteca de cliente do Armazenamento do Azure para JavaScript.

Pré-requisitos

Sobre propriedades e metadados

  • Propriedades do sistema: as propriedades do sistema existem em cada recurso de armazenamento de Blob. Alguns deles podem ser lidos ou definidos, enquanto outros são somente leitura. Sob as capas, algumas propriedades do sistema correspondem a determinados cabeçalhos HTTP padrão. A biblioteca de cliente do Armazenamento do Azure para JavaScript mantém essas propriedades para você.

  • Metadados definidos pelo usuário: os metadados definidos pelo usuário consistem em um ou mais pares nome-valor que você especifica para um recurso de armazenamento de Blob. Você pode usar metadados para armazenar valores adicionais com o recurso. Os valores de metadados são apenas para seus próprios fins e não afetam como o recurso se comporta.

    Os pares nome/valor de metadados são cabeçalhos HTTP válidos e devem aderir a todas as restrições que regem os cabeçalhos HTTP. Para obter mais informações sobre requisitos de nomenclatura de metadados, consulte Nomes de metadados.

Nota

As tags de índice de Blob também fornecem a capacidade de armazenar atributos de chave/valor arbitrários definidos pelo usuário ao lado de um recurso de armazenamento de Blob do Azure. Embora semelhante aos metadados, apenas as tags de índice de blob são automaticamente indexadas e tornadas pesquisáveis pelo serviço de blob nativo. Os metadados não podem ser indexados e consultados, a menos que você utilize um serviço separado, como a Pesquisa do Azure.

Para saber mais sobre esse recurso, consulte Gerenciar e localizar dados no armazenamento de Blob do Azure com índice de blob (visualização).

Definir cabeçalhos http de blob

O exemplo de código a seguir define as propriedades do sistema HTTP blob em um blob.

Para definir as propriedades HTTP para um blob, crie um BlobClient e chame BlobClient.setHTTPHeaders. Analise as propriedades BlobHTTPHeaders para saber quais propriedades HTTP você deseja definir. Todas as propriedades HTTP não definidas explicitamente são limpas.

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

Definir metadados

Você pode especificar metadados como um ou mais pares nome-valor em um recurso de blob ou contêiner. Para definir metadados, crie um BlobClient e envie um objeto JSON de pares nome-valor com

O exemplo de código a seguir define metadados em um blob.

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

  await blobClient.setMetadata(metadata);

  console.log(`metadata set successfully`);

}

Para ler os metadados, obtenha as propriedades do blob (mostradas abaixo), referindo-se especificamente à metadata propriedade.

Obter propriedades de blob

O exemplo de código a seguir obtém as propriedades do sistema de um blob, incluindo cabeçalhos HTTP e metadados, e exibe esses valores.

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

A saída para essas linhas console.log se parece com:

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:

Recursos

Para saber mais sobre como gerenciar propriedades do sistema e metadados definidos pelo usuário usando a biblioteca de cliente do Armazenamento de Blobs do Azure para JavaScript, consulte os recursos a seguir.

Operações da API REST

O SDK do Azure para JavaScript contém bibliotecas que se baseiam na API REST do Azure, permitindo que você interaja com operações da API REST por meio de paradigmas JavaScript familiares. Os métodos da biblioteca de cliente para gerenciar propriedades do sistema e metadados definidos pelo usuário usam as seguintes operações da API REST:

Amostras de código

Recursos da biblioteca do cliente