Hledání objektů blob podle značek

Operace Find Blobs by Tags najde všechny objekty blob v účtu úložiště, jejichž značky odpovídají danému vyhledávacímu výrazu.

Žádost

Požadavek Find Blobs by Tags lze zkonstruovat následujícím způsobem. Doporučuje se protokol HTTPS. Nahraďte myaccount názvem vašeho účtu úložiště:

Identifikátor URI požadavku metody GET Verze PROTOKOLU HTTP
https://myaccount.blob.core.windows.net?comp=blobs&where=<expression> HTTP/1.1

Parametry identifikátoru URI

V identifikátoru URI požadavku je možné zadat následující další parametry.

Parametr Popis
expression Povinná hodnota. Filtruje sadu výsledků tak, aby zahrnovala pouze objekty blob, jejichž značky odpovídají zadanému výrazu.

Další informace o vytvoření tohoto výrazu najdete v poznámkách.
marker Nepovinný parametr. Řetězcová hodnota, která identifikuje část sady výsledků dotazu, která se má vrátit s další operací. Operace vrátí hodnotu značky v těle odpovědi, pokud vrácená sada výsledků dotazu nebyla dokončena. Hodnota značky se pak může použít v dalším volání k vyžádání další sady položek.

Hodnota značky je pro klienta neprůhledná.
maxresults Nepovinný parametr. Určuje maximální počet objektů blob, které se vrátí. Pokud požadavek nezadá nebo nezadá hodnotu větší maxresults než 5 000, server vrátí až 5 000 položek.

Pokud maxresults nastavíte hodnotu menší nebo rovnu nule, dojde k chybě s kódem odpovědi 400 (Chybný požadavek).
timeout Nepovinný parametr. Parametr timeout je vyjádřen v sekundách. Další informace najdete v tématu Nastavení časových limitů pro operace služby Blob Service.

Hlavičky požadavku

Následující tabulka popisuje povinné a volitelné hlavičky požadavku.

Hlavička požadavku Popis
Authorization Povinná hodnota. Určuje schéma autorizace, název účtu a podpis. Další informace najdete v tématu Autorizace požadavků na Azure Storage.
Date nebo x-ms-date Povinná hodnota. Určuje formát UTC (Coordinated Universal Time). Další informace najdete v tématu Autorizace požadavků na Azure Storage.
x-ms-version Vyžaduje se pro všechny autorizované požadavky, volitelné pro anonymní požadavky. Určuje verzi operace, která se má použít pro tento požadavek. Další informace najdete v tématu o verzích pro Azure Storage Services.
x-ms-client-request-id Nepovinný parametr. Poskytuje neprůhlednou hodnotu vygenerovanou klientem s limitem 1 kiB znaků, který se zaznamená do analytických protokolů, když je povolené protokolování analýzy úložiště. Použití této hlavičky se důrazně doporučuje pro korelaci aktivit na straně klienta s požadavky přijatými serverem. Další informace najdete v tématu Protokolování Storage Analytics a Protokolování Azure: Použití protokolů ke sledování Storage požadavků.

Text požadavku

Žádné

Odpověď

Odpověď obsahuje stavový kód HTTP, hlavičky odpovědi a text odpovědi.

Stavový kód

Úspěšná operace vrátí stavový kód 200 (OK).

Informace o stavových kódech najdete v tématu Stavové a chybové kódy.

Hlavičky odpovědi

Odpověď pro tuto operaci zahrnuje následující hlavičky. Odpověď může obsahovat také další standardní hlavičky PROTOKOLU HTTP. Všechny standardní hlavičky odpovídají specifikaci protokolu HTTP/1.1.

Hlavička odpovědi Popis
Content-Type application/xml
Content-Length Velikost vráceného dokumentu XML v bajtech
x-ms-request-id Tato hlavička jednoznačně identifikuje požadavek, který byl proveden, a lze ho použít k řešení potíží s požadavkem. Další informace najdete v tématu Řešení potíží s operacemi rozhraní API.
x-ms-version Označuje verzi Blob service, která se používá k provedení požadavku.
Date Hodnota data a času UTC vygenerovaná službou, která udává čas zahájení odpovědi.
x-ms-client-request-id Tato hlavička se používá k řešení potíží s požadavky a odpovídajícími odpověďmi. Hodnota této hlavičky se rovná hodnotě hlavičky, pokud se nachází v požadavku a hodnota je nejvíce x-ms-client-request-id 1 024 viditelných znaků ASCII. Pokud hlavička v požadavku není, nebude tato hlavička x-ms-client-request-id v odpovědi k dispozici.

Text odpovědi

Ve verzi 2020-04-08 a novější jsou odpovídající značky objektu blob zapouzdřeny v elementu Tags. Text odpovědi má následující formát:

<?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>  

Text odpovědi je dokument UTF-8 XML ve správném formátu.

Autorizace

Tuto operaci může volat vlastník účtu a kdokoli, kdo má sdílený přístupový podpis s oprávněním k vyhledání objektů blob podle značek (oprávnění f SAS).

Kromě toho mohou tuto operaci provádět uživatelé RBAC Microsoft.Storage/storageAccounts/blobServices/containers/blobs/filter/action s oprávněním .

Poznámky

Operace Find Blobs by Tags je podporována v REST API verze 2019-12-12 a novější.

Sekundární index, který používá , Find Blobs by Tags je nakonec konzistentní. Aktualizace značek objektů blob prostřednictvím Set Blob Tags mnoha z nich nejsou operace okamžitě Find Blobs by Tags viditelné.

Vytvoření vyhledávacího výrazu

Parametr where URI vyhledá objekty blob v účtu úložiště, jejichž značky odpovídají danému výrazu. Výraz se musí vyhodnotit na , aby se true objekt blob vrátil v sadě výsledků dotazu.

Služba úložiště podporuje podmnožinu ANSI SQL klauzule WHERE pro hodnotu where=<expression> parametru dotazu. Podporují se následující operátory:

Operátor Popis Příklad
= Je rovno &where=Status = 'In Progress'
> Větší než &where=LastModified > '2018-06-18 20:51:26Z'
>= Větší než nebo rovno &where=Priority >= '05'
< Menší než &where=Age < '032'
<= Menší než nebo rovno &where=Reviewer <= 'Smith'
AND Logické a &where=Name > 'C' AND Name < 'D'
&where=Age > '032' AND Age < '100'
@container Určení kontejneru &where=@container='mycontainer' AND Name = 'C'

Poznámka: Hodnota parametru URI musí být správně where zakódovaná pomocí identifikátoru URI (včetně mezer a operátorů). Výše uvedené příklady tuto skutečnost vyhodnotí pro čitelnost.

Všechny hodnoty značek jsou řetězce a podporované binární relační operátory používají lexikografické řazení hodnot značek. Pro podporu ne string datových typů, včetně čísel a kalendářních dat, je nutné použít odpovídající odsazení a seřaditelné formátování. Hodnoty značek musí být uzavřeny v jednoduchých uvozovkách.

Pokud jsou názvy značek SQL identifikátory, mohou být přítomny bez ukončování. Pokud obsahují nějaké speciální znaky, musí být oddělené dvojitými uvozovkami (například "TagName" = 'TagValue'). Názvy značek doporučujeme vždy uzavřít do dvojitých uvozovek.

Služba úložiště odmítne všechny požadavky, které obsahují neplatný výraz s kódem chyby 400 (Chybný požadavek).

Viz také

Správa a vyhledávání dat ve službě Azure Blob Storage s využitím indexu objektů blob
Autorizace požadavků na Azure Storage
Stavové a chybové kódy
Kódy chyb služby Blob Service