Use marcas de índice de blob para gerenciar e localizar dados com o Java
Este artigo mostra como usar marcas de índice de blob para gerenciar e localizar dados usando a biblioteca de clientes do Armazenamento do Azure para Java.
Pré-requisitos
- Este artigo pressupõe que você já tenha um projeto configurado para trabalhar com a biblioteca de clientes do Armazenamento de Blobs do Azure para Java. Para saber mais sobre como configurar seu projeto, incluindo a instalação de pacote, adição de
import
diretivas e criação e autorização do objeto do cliente, consulte Introdução ao Armazenamento do Microsoft Azure e Java. - O mecanismo de autorização deve ter permissões para trabalhar com marcas de índice de blob. Para saber mais, confira as diretrizes de autorização para as seguintes operações de API REST:
Gravar marcas de índice de blob
As marcas de índice de blob categorizam os dados na sua conta de armazenamento usando atributos de marca de chave-valor. Essas marcas são indexadas automaticamente e expostas como um índice multidimensional pesquisável para localizar dados com facilidade. Este artigo mostra como definir, obter e localizar dados usando marcas de índice de blob.
Não há suporte para marcas de índice de blob para contas de armazenamento com namespace hierárquico habilitado. Para saber mais sobre o recurso de marca de índice de blob, juntamente com problemas e limitações conhecidos, confira Gerenciar e localizar dados de Blob do Azure com marcas de índice de blob.
Editar marcas
Você poderá definir marcas de índice se o código tiver acesso autorizado aos dados de blob por meio de um dos seguintes mecanismos:
- Entidade de segurança que recebe uma função RBAC do Azure com a ação Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write. O Proprietário de Dados de Blob de Armazenamento é uma função interna que inclui essa ação.
- Assinatura de Acesso Compartilhado (SAS) com permissão para acessar as marcas do blob (permissão
t
) - Chave de conta
Para obter mais informações, consulte Configuração de marcas de índice de blob.
Defina marcas usando o seguinte método:
As marcas especificadas nesse método substituirão marcas existentes. Se os valores antigos precisarem ser preservados, eles deverão ser baixados e incluídos na chamada para esse método. O seguinte exemplo mostra como definir marcas:
public void setBlobTags(BlobClient blobClient) {
// Get any existing tags for the blob if they need to be preserved
Map<String, String> tags = blobClient.getTags();
// Add or modify tags
tags.put("Sealed", "false");
tags.put("Content", "image");
tags.put("Date", "2022-01-01");
// setTags will replace existing tags with the map entries we pass in
blobClient.setTags(tags);
}
Você pode excluir todas as marcas passando um objeto Map
vazio para o método setTags
:
public void clearBlobTags(BlobClient blobClient) {
Map<String, String> tags = new HashMap<String, String>();
blobClient.setTags(tags);
}
Obter marcas
Você poderá obter marcas de índice se o código tiver acesso autorizado aos dados de blob por meio de um dos seguintes mecanismos:
- Entidade de segurança que recebe uma função RBAC do Azure com a ação Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/read. O Proprietário de Dados de Blob de Armazenamento é uma função interna que inclui essa ação.
- Assinatura de Acesso Compartilhado (SAS) com permissão para acessar as marcas do blob (permissão
t
) - Chave de conta
Para obter mais informações, consulte Obtendo e listando marcas de índice de blob.
Obtenha marcas usando o seguinte método:
O seguinte exemplo mostra como recuperar e iterar as marcas do blob:
public void getBlobTags(BlobClient blobClient) {
Map<String, String> tags = blobClient.getTags();
System.out.println("Blob tags:");
for (Map.Entry<String, String> entry : tags.entrySet())
System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}
Filtre e localize dados com marcas de índice de blob
Você poderá usar marcas de índice para localizar e filtrar dados se o código tiver acesso autorizado aos dados de blob por meio de um dos seguintes mecanismos:
- Entidade de segurança que recebe uma função RBAC do Azure com a ação Microsoft.Storage/storageAccounts/blobServices/containers/blobs/filter/action. O Proprietário de Dados de Blob de Armazenamento é uma função interna que inclui essa ação.
- Assinatura de Acesso Compartilhado (SAS) com permissão para filtrar blobs por marcas (permissão
f
) - Chave de conta
Para obter mais informações, consulte Localizando dados usando marcas de índice de blob.
Observação
Não é possível usar marcas de índice para recuperar versões anteriores. As marcas para versões anteriores não são passadas para o mecanismo de índice de blob. Para obter mais informações, consulte Condições e problemas conhecidos.
Localize os dados usando o seguinte método:
O seguinte exemplo localiza todos os blobs marcados como uma imagem:
public void findBlobsByTag(BlobContainerClient blobContainerClient) {
String query = "\"Content\"='image'";
blobContainerClient.findBlobsByTags(query)
.forEach(blob -> System.out.printf("Name: %s%n", blob.getName()));
}
Recursos
Para saber mais sobre como usar as marcas de índice para gerenciar e localizar dados usando a biblioteca de clientes de 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 criam sobre a API REST do Azure, permitindo a interação com as operações de API REST por meio de paradigmas conhecidos do Java. Os métodos da biblioteca de clientes para gerenciar e usar marcas de índice de blob usam as seguintes operações da API REST:
- Obter marcas de blob (API REST)
- Definir marcas de blob (API REST)
- Localizar blobs por marcas (API REST)
Exemplos de código
Recursos da biblioteca de clientes
- Documentação de referência da biblioteca de clientes
- Código-fonte da biblioteca de clientes
- Pacote (Maven)