Share via


Localizar Blobs por Etiquetas no Contentor

A Find Blobs by Tags in Container operação localiza todos os blobs cujas etiquetas correspondem a uma expressão de pesquisa num contentor.

Pedir

Pode construir o pedido da Find Blobs by Tags in Container seguinte forma. Recomendamos HTTPS. Substitua myaccount pelo nome da sua conta de armazenamento e mycontainer pelo nome do contentor de armazenamento.

URI do pedido do método GET Versão HTTP
https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=blobs&where=<expression> HTTP/1.1

Parâmetros do URI

Pode especificar os seguintes parâmetros adicionais no URI do pedido:

Parâmetro Description
expression Obrigatório. Filtra o conjunto de resultados para incluir apenas blobs cujas etiquetas correspondem à expressão especificada.

Para obter informações sobre como construir esta expressão, consulte Observações mais adiante neste artigo.
marker Opcional. Um valor de cadeia que identifica a parte do conjunto de resultados a ser devolvida com a operação seguinte. A operação devolve um valor de marcador no corpo da resposta se o conjunto de resultados devolvido não tiver sido concluído. Em seguida, o valor do marcador pode ser utilizado numa chamada subsequente para pedir o próximo conjunto de itens.

O valor do marcador é opaco para o cliente.
maxresults Opcional. Especifica o número máximo de blobs a devolver. Se o pedido não especificar maxresults ou especificar um valor superior a 5000, o servidor devolve até 5000 itens. Se existirem resultados adicionais a devolver, o serviço devolve um token de continuação no NextMarker elemento de resposta. Em determinados casos, o serviço pode devolver menos resultados do que maxresults os especificados, mas ainda assim devolver um token de continuação.

Definir maxresults para um valor menor ou igual a zero resulta no código de resposta de erro 400 (Pedido Incorreto).
timeout Opcional. Expresso em segundos. Para obter mais informações, veja Definir tempos limite para operações de Armazenamento de Blobs.

Cabeçalhos do pedido

A tabela seguinte descreve os cabeçalhos de pedido obrigatórios e opcionais:

Cabeçalho do pedido Description
Authorization Obrigatório. Especifica o esquema de autorização, o nome da conta e a assinatura. Para obter mais informações, veja Autorizar pedidos para o Armazenamento do Azure.
Date ou x-ms-date Obrigatório. Especifica a Hora Universal Coordenada (UTC) do pedido. Para obter mais informações, veja Autorizar pedidos para o Armazenamento do Azure.
x-ms-version Necessário para todos os pedidos autorizados, mas opcional para pedidos anónimos. Especifica a versão da operação a utilizar para este pedido. Para obter mais informações, veja Controlo de versões dos serviços de Armazenamento do Azure.
x-ms-client-request-id Opcional. Fornece um valor opaco gerado pelo cliente com um limite de carateres de 1 kibibyte (KiB) que é registado nos registos quando o registo é configurado. Recomendamos vivamente que utilize este cabeçalho para correlacionar as atividades do lado do cliente com os pedidos que o servidor recebe.

Corpo do pedido

Nenhum.

Resposta

A resposta inclui um código de estado HTTP, cabeçalhos de resposta e um corpo de resposta.

Código de estado

Uma operação bem-sucedida devolve o código de estado 200 (OK).

Para obter informações sobre códigos de estado, veja Códigos de estado e de erro.

Cabeçalhos de resposta

A resposta para esta operação inclui os seguintes cabeçalhos. A resposta também pode incluir cabeçalhos HTTP padrão adicionais. Todos os cabeçalhos padrão estão em conformidade com a especificação do protocolo HTTP/1.1.

Cabeçalho de resposta Descrição
Content-Type application/xml Especifica como o tipo de conteúdo.
Content-Length Especifica o tamanho do documento XML devolvido, em bytes.
x-ms-request-id Identifica exclusivamente o pedido que foi feito. Pode utilizá-lo para resolver o pedido. Para obter mais informações, veja Resolver problemas de operações da API.
x-ms-version Indica a versão do Armazenamento de Blobs do Azure que foi utilizada para executar o pedido.
Date Um valor de data/hora UTC que indica a hora em que o serviço enviou a resposta.
x-ms-client-request-id Pode ser utilizado para resolver problemas de pedidos e respostas correspondentes. O valor deste cabeçalho é igual ao valor do x-ms-client-request-id cabeçalho, se estiver presente no pedido e o valor for, no máximo, 1024 carateres ASCII visíveis. Se o x-ms-client-request-id cabeçalho não estiver presente no pedido, este cabeçalho não estará presente na resposta.

Corpo da resposta

O formato do corpo da resposta é o seguinte:

<?xml version="1.0" encoding="utf-8"?>  
<EnumerationResults ServiceEndpoint=http://myaccount.blob.core.windows.net/>  
  <Where>string-value</Where>  
  <Blobs>  
    <Blob>  
      <Name>blob-name</Name>  
      <ContainerName>container-name</ContainerName>  
      <Tags>
        <TagSet>
          <Tag>
            <Key>matching-tag-name1</Key>
            <Value>matching-tag-value1</Value>
          </Tag>
          <Tag>
            <Key>matching-tag-name2</Key>
            <Value>matching-tag-value2</Value>
          </Tag>
        </TagSet>
      </Tags> 
    </Blob>  
  </Blobs>  
  <NextMarker />  
</EnumerationResults>  

O corpo da resposta é um documento XML UTF-8 bem formado.

Autorização

A autorização é necessária ao chamar qualquer operação de acesso a dados no Armazenamento do Azure. Pode autorizar a Find Blobs by Tags in Container operação conforme descrito abaixo.

Importante

A Microsoft recomenda a utilização de Microsoft Entra ID com identidades geridas para autorizar pedidos para o Armazenamento do Azure. Microsoft Entra ID fornece segurança superior e facilidade de utilização em comparação com a autorização de Chave Partilhada.

O Armazenamento do Azure suporta a utilização de Microsoft Entra ID para autorizar pedidos a dados de blobs. Com Microsoft Entra ID, pode utilizar o controlo de acesso baseado em funções do Azure (RBAC do Azure) para conceder permissões a um principal de segurança. O principal de segurança pode ser um utilizador, grupo, principal de serviço de aplicação ou identidade gerida do Azure. O principal de segurança é autenticado por Microsoft Entra ID para devolver um token OAuth 2.0. Em seguida, o token pode ser utilizado para autorizar um pedido contra o serviço Blob.

Para saber mais sobre a autorização através de Microsoft Entra ID, veja Autorizar o acesso a blobs com Microsoft Entra ID.

Permissões

Abaixo estão listadas as ações RBAC necessárias para que um utilizador Microsoft Entra, grupo, identidade gerida ou principal de serviço chame a Find Blobs by Tags in Container operação e a função RBAC do Azure com menos privilégios que inclua esta ação:

Para saber mais sobre como atribuir funções com o RBAC do Azure, veja Atribuir uma função do Azure para acesso a dados de blobs.

Observações

A Find Blobs by Tags in Container operação é suportada na versão da API REST 2021-04-10 e posterior.

O índice secundário que Find Blobs by Tags in Container utiliza é eventualmente consistente. Atualizações a etiquetas de blob através Set Blob Tags de poderão não estar imediatamente visíveis para Find Blobs by Tags in Container as operações.

Construir uma expressão de pesquisa

O where parâmetro URI localiza blobs na conta de armazenamento e no contentor cujas etiquetas correspondem a uma expressão. A expressão tem de avaliar como true para que um blob seja devolvido no conjunto de resultados.

O serviço de armazenamento suporta um subconjunto da gramática da cláusula ANSI SQL WHERE para o valor do parâmetro de where=<expression> consulta. O serviço de armazenamento suporta os seguintes operadores:

Operador Descrição Exemplo
= Igual &where=Status = 'In Progress'
> Maior que &where=LastModified > '2018-06-18 20:51:26Z'
>= Maior ou igual a &where=Priority >= '05'
< Menor que &where=Age < '032'
<= Menor ou igual a &where=Reviewer <= 'Smith'
AND Lógica e &where=Name > 'C' AND Name < 'D'
&where=Age > '032' AND Age < '100'

Nota

O valor do where parâmetro URI tem de ser codificado corretamente com URI (incluindo espaços e operadores). Os exemplos anteriores omitem isto para legibilidade. @container não é suportado quando o contentor faz parte de um URI.

Todos os valores de etiqueta são cadeias. Os operadores relacionais binários suportados utilizam uma ordenação lexicográfica dos valores das etiquetas. Para suportar tipos de dados que não sejam cadeias de carateres, incluindo números e datas, tem de utilizar o preenchimento adequado e a formatação ordenável. Os valores das etiquetas têm de estar entre plicas.

Se os nomes das etiquetas forem identificadores SQL normais, podem estar presentes sem escapar. Se contiverem carateres especiais, têm de ser delimitados com aspas duplas (por exemplo, "TagName" = TagValue). Recomendamos que coloque sempre os nomes das etiquetas entre aspas duplas.

O serviço de armazenamento rejeitará qualquer pedido que contenha uma expressão inválida com o código de erro 400 (Pedido Incorreto).

Faturação

Os pedidos de preços podem ter origem em clientes que utilizam APIs de Armazenamento de Blobs, diretamente através da API REST do Armazenamento de Blobs ou a partir de uma biblioteca de cliente do Armazenamento do Azure. Estes pedidos acumulam custos por transação. O tipo de transação afeta a forma como a conta é cobrada. Por exemplo, as transações de leitura acumulam-se numa categoria de faturação diferente das transações de escrita. A tabela seguinte mostra a categoria de faturação dos Find Blobs by Tags in Container pedidos com base no tipo de conta de armazenamento:

Operação Tipo de conta de armazenamento Categoria de faturação
Localizar Blobs por Etiquetas no Contentor Blob de blocos Premium
Standard para fins gerais v2
Standard para fins gerais v1
Listar e Create operações de Contentor

Para saber mais sobre os preços da categoria de faturação especificada, veja Preços do Armazenamento de Blobs do Azure.

Ver também

Gerir e localizar dados em Armazenamento de Blobs do Azure com etiquetas de índice de blobs
Autorizar pedidos para o Armazenamento do Azure
Códigos de estado e de erro
Códigos de erro do Armazenamento de Blobs