Gerencie propriedades e metadados de contêiner com o TypeScript
Os contêineres de Blob suportam propriedades do sistema e metadados definidos pelo usuário, além dos dados que eles contêm. 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
- Os exemplos neste artigo pressupõem que você já tenha um projeto configurado para trabalhar com a biblioteca de cliente do Armazenamento de Blobs do Azure para JavaScript. Para saber mais sobre como configurar seu projeto, incluindo instalação de pacotes, importação de módulos e criação de um objeto cliente autorizado para trabalhar com recursos de dados, consulte Introdução ao Armazenamento de Blobs do Azure e TypeScript.
- O mecanismo de autorização deve ter permissões para trabalhar com propriedades ou metadados de contêiner. Para saber mais, consulte as diretrizes de autorização para as seguintes operações de API REST:
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.
Recuperar propriedades do contêiner
Para recuperar propriedades de contêiner, crie um objeto ContainerClient e use o seguinte método:
- ContainerClient.getProperties (retorna ContainerProperties)
O exemplo de código a seguir busca as propriedades de um contêiner e grava os valores de propriedade em uma janela do console:
async function getContainerProperties(
containerClient: ContainerClient
): Promise<void> {
const properties: ContainerGetPropertiesResponse =
await containerClient.getProperties();
if (properties.errorCode) throw Error(properties.errorCode);
console.log(containerClient.containerName + ' properties: ');
for (const property in properties) {
switch (property) {
// nested properties are stringified
case 'metadata':
//case 'objectReplicationRules':
console.log(` ${property}: ${JSON.stringify(properties[property])}`);
break;
default:
console.log(` ${property}: ${properties[property]}`);
break;
}
}
}
/* Example output:
{
"metadata": {
"lastfilereview": "3/20/2023",
"reviewer": "johnh"
},
"etag": "\"0x8DB295348CDCD54\"",
"lastModified": "2023-03-20T14:56:28.000Z",
"leaseState": "available",
"leaseStatus": "unlocked",
"clientRequestId": "0bc8c31a-c607-477e-9846-f2121b10297a",
"requestId": "1e4ee737-b01e-0042-4e3c-5b2207000000",
"version": "2021-12-02",
"date": "2023-03-20T14:56:28.000Z",
"blobPublicAccess": "container",
"hasImmutabilityPolicy": false,
"hasLegalHold": false,
"defaultEncryptionScope": "$account-encryption-key",
"denyEncryptionScopeOverride": false,
"isImmutableStorageWithVersioningEnabled": false
}
*/
Definir e recuperar metadados
Você pode especificar metadados como um ou mais pares nome-valor recurso de contêiner. Para definir metadados, crie um objeto ContainerClient e use o seguinte método:
- ContainerClient.setMetadados
O exemplo de código a seguir define metadados em um contêiner.
/*
const metadata = {
// values must be strings
lastFileReview: currentDate.toString(),
reviewer: `johnh`
}
*/
async function setContainerMetadata(
containerClient: ContainerClient,
metadata: Metadata
) {
await containerClient.setMetadata(metadata);
}
Para recuperar metadados, obtenha as propriedades do contêiner e use a propriedade de metadados retornada.
Recursos
Para saber mais sobre como definir e recuperar propriedades e metadados de contêiner 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 definir e recuperar propriedades e metadados usam as seguintes operações da API REST:
- Obter propriedades de contêiner (API REST)
- Definir metadados de contêiner (API REST)
- Obter metadados de contêiner (API REST)
O getProperties
método recupera propriedades de contêiner e metadados chamando a operação Get Blob Properties e a operação Get Blob Metadata .