Partilhar via


Gerencie propriedades e metadados de contêiner com Java

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 Java.

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. Nos bastidores, algumas propriedades do sistema correspondem a determinados cabeçalhos HTTP padrão. A biblioteca de cliente do Armazenamento do Azure para Java 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, use o seguinte método:

O exemplo de código a seguir busca as propriedades do sistema de um contêiner e grava os valores de propriedade em uma janela do console:

public void getContainerProperties(BlobContainerClient blobContainerClient) {
    BlobContainerProperties properties = blobContainerClient.getProperties();
    System.out.printf("Public Access Type: %s, Legal Hold? %b, Immutable? %b%n",
            properties.getBlobPublicAccess(),
            properties.hasLegalHold(),
            properties.hasImmutabilityPolicy());
}

Definir e recuperar metadados

Você pode especificar metadados como um ou mais pares nome-valor em um recurso de blob ou contêiner. Para definir metadados, use o seguinte método:

A configuração de metadados de contêiner substitui todos os metadados existentes associados ao contêiner. Não é possível modificar um par nome-valor individual.

O exemplo de código a seguir define metadados em um contêiner:

public void addContainerMetadata(BlobContainerClient blobContainerClient) {
    Map<String, String> metadata = new HashMap<String, String>();
    metadata.put("docType", "text");
    metadata.put("category", "reference");

    try {
        blobContainerClient.setMetadata(metadata);
        System.out.printf("Set metadata completed %n");
    } catch (UnsupportedOperationException error) {
        System.out.printf("Failure while setting metadata %n");
    }
}

Para recuperar metadados, chame o seguinte método:

O exemplo a seguir lê em valores de metadados:

public void readContainerMetadata(BlobContainerClient blobContainerClient) {
    BlobContainerProperties properties = blobContainerClient.getProperties();

    System.out.printf("Container metadata: %n");
    properties.getMetadata().entrySet().forEach(metadataItem -> {
        System.out.printf(" %s = %s%n", metadataItem.getKey(), metadataItem.getValue());
    });
}

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 Java, consulte os recursos a seguir.

Operações da API REST

O SDK do Azure para Java 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 Java familiares. Os métodos da biblioteca de cliente para definir e recuperar propriedades e metadados usam as seguintes operações da 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 .

Amostras de código

Recursos da biblioteca do cliente