Gerenciar propriedades e metadados de blob com JavaScript
Além dos dados que eles contêm, os blobs suportam as propriedades do sistema e os metadados definidos pelo usuário. Este artigo mostra como gerenciar as propriedades do sistema e os metadados definidos pelo usuário usando a Biblioteca de clientes do Armazenamento do Microsoft Azure para JavaScript.
Pré-requisitos
- Os exemplos neste artigo pressupõem que você já tenha um projeto configurado para trabalhar com a biblioteca de clientes do Armazenamento de Blobs do Azure para JavaScript. Para saber mais sobre a configuração do seu projeto, incluindo a instalação de pacotes, a importação de módulos e a criação de um objeto cliente autorizado para trabalhar com recursos de dados, confira Introdução ao Armazenamento de Blobs do Azure e o JavaScript.
- O mecanismo de autorização deve ter permissões para trabalhar com propriedades ou metadados de blob. Para saber mais, confira as diretrizes de autorização para as seguintes operações de API REST:
Propriedades e metadados
Propriedades do sistema: existem propriedades do sistema em cada recurso de armazenamento de Blob. Algumas podem ser lidas ou definidas, enquanto outras são de somente leitura. Internamente, algumas propriedades do sistema correspondem a certos cabeçalhos HTTP padrão. A biblioteca de clientes do Armazenamento do Microsoft 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. É possível usar os metadados para armazenar valores adicionais com o recurso. Os valores de metadados são apenas para serem usados para os objetivos que você desejar e não afetam o comportamento do recurso.
Os pares de nome/valor de metadados são cabeçalhos HTTP válidos e devem cumprir todas as restrições que regem os cabeçalhos HTTP. Para obter mais informações sobre os requisitos de nomenclatura de metadados, consulte Nomes de metadados.
Observação
As marcas de índice de blob também fornecem a capacidade de armazenar atributos de chave/valor arbitrários definidos pelo usuário junto com o recurso de armazenamento de Blobs do Azure. Embora seja semelhante aos metadados, somente as marcas de índice de blob são indexadas automaticamente e tornam-se 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 o Azure Search.
Para saber mais sobre esse recurso, confira Gerenciar e localizar dados no Armazenamento de Blobs do Azure usando o índice de blobs (versão prévia).
Definir e recuperar propriedades
Para definir propriedades em um blob, use o seguinte método:
O exemplo de código a seguir define as propriedades de sistema blobContentType
e blobContentLanguage
em um blob.
Todas as propriedades não explicitamente definidas são limpas. O exemplo de código a seguir primeiro obtém as propriedades existentes no blob e as usa para preencher os cabeçalhos que não estão sendo atualizados.
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);
}
Para recuperar propriedades em um blob, use o seguinte método:
O exemplo de código a seguir obtém as propriedades de sistema de um blob e exibe alguns dos valores:
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}`);
}
Definir e recuperar metadados
Você pode especificar os metadados como um ou mais pares de nome-valor em um recurso de contêiner ou blob. Para definir metadados, envie um objeto Metadados contendo pares nome-valor usando o seguinte método:
O exemplo de código a seguir define os metadados em um blob:
async function setBlobMetadata(blobClient, metadata) {
metadata = {
docType: 'text',
category: 'reference'
};
await blobClient.setMetadata(metadata);
}
Para recuperar metadados, chame o método getProperties no seu blob para preencher a coleção de metadados e, em seguida, leia os valores da propriedade de metadados. O método getProperties
recupera propriedades e metadados do blob chamando a operação Get Blob Properties
e a operação Get Blob Metadata
.
Recursos
Para saber mais sobre como gerenciar propriedades do sistema e metadados definidos pelo usuário usando a biblioteca de clientes do Armazenamento de Blobs do Azure para JavaScript, consulte os recursos a seguir.
Exemplos de código
- Veja exemplos de código JavaScript e TypeScript deste artigo (GitHub)
Operações da API REST
O SDK do Azure para JavaScript contém bibliotecas que se baseiam na API REST do Azure, permitindo a interação com as operações de API REST por meio de paradigmas conhecidos do JavaScript. Os métodos da biblioteca de clientes para gerenciar propriedades do sistema e metadados definidos pelo usuário usam as seguintes operações de API REST:
- Definir propriedades de blob (API REST)
- Obter propriedades de blob (API REST)
- Definir metadados de blob (API REST)
- Obter metadados de blob (API REST)
Recursos da biblioteca de clientes
- Documentação de referência da biblioteca de clientes
- Código-fonte da biblioteca de clientes
- Pacote (npm)
Conteúdo relacionado
- Esse artigo faz parte do guia do desenvolvedor do Blob Storage para JavaScript/Typescript. Para saber mais, veja a lista completa de artigos do guia do desenvolvedor em Crie seu aplicativo JavaScript/Typescript.