Use tags de índice de blob para gerenciar e localizar dados com Java
Este artigo mostra como usar marcas de índice de blob para gerenciar e localizar dados usando a biblioteca de cliente 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 cliente do Armazenamento de Blobs do Azure para Java. Para saber mais sobre como configurar seu projeto, incluindo a instalação de pacotes, adicionar
import
diretivas e criar um objeto de cliente autorizado, consulte Introdução ao Armazenamento do Azure e Java. - O mecanismo de autorização deve ter permissões para trabalhar com tags de índice de blob. Para saber mais, consulte as diretrizes de autorização para as seguintes operações de API REST:
Sobre tags de índice de blob
As tags de índice de Blob categorizam os dados em sua conta de armazenamento usando atributos de tag chave-valor. Essas tags são automaticamente indexadas e expostas como um índice multidimensional pesquisável para encontrar dados facilmente. Este artigo mostra como definir, obter e localizar dados usando tags de índice de blob.
As tags de índice de Blob não são suportadas 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, consulte Gerenciar e localizar dados de Blob do Azure com tags de índice de blob.
Definir tags
Você pode definir marcas de índice se seu código tiver autorizado o acesso aos dados de blob por meio de um dos seguintes mecanismos:
- Entidade de segurança à qual é atribuída uma função RBAC do Azure com a ação Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write . O Proprietário de Dados do Blob de Armazenamento é uma função interna que inclui essa ação.
- Assinatura de Acesso Compartilhado (SAS) com permissão para acessar as tags do blob (
t
permissão) - Chave da conta
Para obter mais informações, consulte Definindo tags de índice de blob.
Você pode definir tags usando o seguinte método:
As tags especificadas neste método substituirão as tags existentes. Se os valores antigos devem ser preservados, eles devem ser baixados e incluídos na chamada para este método. O exemplo a seguir mostra como definir tags:
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 tags passando um objeto vazio Map
para o setTags
método:
public void clearBlobTags(BlobClient blobClient) {
Map<String, String> tags = new HashMap<String, String>();
blobClient.setTags(tags);
}
Obter tags
Você pode obter tags de índice se seu código tiver autorizado o acesso aos dados de blob por meio de um dos seguintes mecanismos:
- Entidade de segurança à qual é atribuída uma função RBAC do Azure com a ação Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/read . O Proprietário de Dados do Blob de Armazenamento é uma função interna que inclui essa ação.
- Assinatura de Acesso Compartilhado (SAS) com permissão para acessar as tags do blob (
t
permissão) - Chave da conta
Para obter mais informações, consulte Obtendo e listando tags de índice de blob.
Você pode obter tags usando o seguinte método:
O exemplo a seguir mostra como recuperar e iterar sobre as tags 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());
}
Filtrar e localizar dados com tags de índice de blob
Você pode usar tags de índice para localizar e filtrar dados se seu código tiver autorizado o acesso aos dados de blob por meio de um dos seguintes mecanismos:
- Entidade de segurança à qual é atribuída uma função RBAC do Azure com a ação Microsoft.Storage/storageAccounts/blobServices/containers/blobs/filter/action . O Proprietário de Dados do Blob de Armazenamento é uma função interna que inclui essa ação.
- Assinatura de Acesso Compartilhado (SAS) com permissão para filtrar blobs por tags (
f
permissão) - Chave da conta
Para obter mais informações, consulte Localizando dados usando tags de índice de blob.
Nota
Não é possível usar tags de índice para recuperar versões anteriores. As tags de 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.
Você pode encontrar dados usando o seguinte método:
O exemplo a seguir 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 marcas de índice para gerenciar e localizar dados 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 de biblioteca de cliente para gerenciar e usar tags de índice de blob usam as seguintes operações de API REST:
- Obter tags de Blob (API REST)
- Definir tags de Blob (API REST)
- Localizar Blobs por Tags (API REST)