Blobs zoeken op tags

Met Find Blobs by Tags de bewerking worden alle blobs in het opslagaccount gevonden waarvan de tags overeenkomen met een bepaalde zoekexpressie.

Aanvraag

De Find Blobs by Tags aanvraag kan als volgt worden samengesteld. HTTPS wordt aanbevolen. Vervang myaccount door de naam van uw opslagaccount:

AANVRAAG-URI GET-methode HTTP-versie
https://myaccount.blob.core.windows.net?comp=blobs&where=<expression> HTTP/1.1

URI-parameters

De volgende aanvullende parameters kunnen worden opgegeven op de aanvraag-URI.

Parameter Beschrijving
expression Vereist. Filtert de resultatenset om alleen blobs te bevatten waarvan de tags overeenkomen met de opgegeven expressie.

Zie de opmerkingen voor meer informatie over het maken van deze expressie.
marker Optioneel. Een tekenreekswaarde die het gedeelte van de resultatenset identificeert dat moet worden geretourneerd met de volgende bewerking. De bewerking retourneert een markeringswaarde in de antwoord-body als de geretourneerde resultatenset niet is voltooid. De markeringswaarde kan vervolgens worden gebruikt in een volgende aanroep om de volgende set items aan te vragen.

De markeringswaarde is ondoorzichtig voor de client.
maxresults Optioneel. Hiermee geeft u het maximum aantal blobs op dat moet worden retourneert. Als de aanvraag geen waarde opgeeft of opgeeft die groter is dan 5000, retourneert de server maximaal maxresults 5000 items.

Als maxresults u instelt op een waarde die kleiner is dan of gelijk is aan nul, resulteert dit in foutreactiecode 400 (Slechte aanvraag).
timeout Optioneel. De timeout parameter wordt uitgedrukt in seconden. Zie Setting Timeouts for Blob Service Operations (Time-outs instellen voor blobservicebewerkingen) voor meer informatie.

Aanvraagheaders

In de volgende tabel worden de vereiste en optionele aanvraagheaders beschreven.

Aanvraagkoptekst Description
Authorization Vereist. Hiermee geeft u het autorisatieschema, de accountnaam en de handtekening op. Zie Aanvragen voor toegang tot Azure Storage voor meer Azure Storage.
Date of x-ms-date Vereist. Geef de Coordinated Universal Time (UTC) op voor de aanvraag. Zie Aanvragen voor toegang tot Azure Storage voor meer Azure Storage.
x-ms-version Vereist voor alle geautoriseerde aanvragen, optioneel voor anonieme aanvragen. Hiermee geeft u de versie van de bewerking moet worden gebruikt voor deze aanvraag. Zie Versioning for the Azure Storage Services (Versie Azure Storage services) voor meer informatie.
x-ms-client-request-id Optioneel. Biedt een door de client gegenereerde, ondoorzichtige waarde met een limiet van 1 KiB die wordt vastgelegd in de analyselogboeken wanneer logboekregistratie van opslaganalyse is ingeschakeld. Het gebruik van deze header wordt ten zeerste aanbevolen voor het correleren van activiteiten aan clientzijde met aanvragen die door de server worden ontvangen. Zie About Storage Analytics Logging and Azure Logging: Using Logs to Track Storage Requests (Logboeken gebruiken om logboeken bij Storage volgen) voor meer informatie.

Aanvraagbody

Geen.

Antwoord

Het antwoord bevat een HTTP-statuscode, antwoordheaders en antwoordtekst.

Statuscode

Een geslaagde bewerking retourneert statuscode 200 (OK).

Zie Status- en foutcodes voor meer informatie over statuscodes.

Antwoordheaders

Het antwoord voor deze bewerking bevat de volgende headers. Het antwoord kan ook aanvullende standaard HTTP-headers bevatten. Alle standaardheaders voldoen aan de HTTP/1.1-protocolspecificatie.

Antwoordheader Description
Content-Type application/xml
Content-Length De grootte van het geretourneerde XML-document, in bytes
x-ms-request-id Deze header identificeert op unieke manier de aanvraag die is gemaakt en kan worden gebruikt voor het oplossen van problemen met de aanvraag. Zie Troubleshooting API Operations (Problemen met API-bewerkingen oplossen) voor meer informatie.
x-ms-version Hiermee wordt de versie van de Blob service gebruikt om de aanvraag uit te voeren.
Date Een UTC-datum/tijd-waarde die wordt gegenereerd door de service die de tijd aangeeft waarop het antwoord is gestart.
x-ms-client-request-id Deze header kan worden gebruikt om problemen met aanvragen en bijbehorende antwoorden op te lossen. De waarde van deze header is gelijk aan de waarde van de header als deze aanwezig is in de aanvraag en de waarde uit ten beste x-ms-client-request-id 1024 zichtbare ASCII-tekens bestaat. Als de x-ms-client-request-id header niet aanwezig is in de aanvraag, is deze header niet aanwezig in het antwoord.

Antwoord body

In versie 2020-04-08 en hoger worden de overeenkomende tags van de blob ingekapseld in een tags-element. De indeling van de antwoord-body is als volgt:

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

De antwoord body is een goed gevormd UTF-8 XML-document.

Autorisatie

Deze bewerking kan worden aangeroepen door de accounteigenaar en door iedereen met een Shared Access Signature die machtigingen heeft om blobs te zoeken op tags (de f SAS-machtiging).

Bovendien kunnen RBAC-gebruikers met de Microsoft.Storage/storageAccounts/blobServices/containers/blobs/filter/action machtiging deze bewerking uitvoeren.

Opmerkingen

De Find Blobs by Tags bewerking wordt ondersteund in REST API versie 2019-12-12 en hoger.

De secundaire index die door Find Blobs by Tags wordt gebruikt, is uiteindelijk consistent. Updates voor blob-tags via Set Blob Tags veel zijn niet onmiddellijk zichtbaar voor Find Blobs by Tags bewerkingen.

Een zoekexpressie maken

De where URI-parameter zoekt blobs in het opslagaccount waarvan de tags overeenkomen met een bepaalde expressie. De expressie moet evalueren naar true om een blob te laten worden geretourneerd in de resultatenset.

De opslagservice ondersteunt een subset van de GRAMMATICA van de ANSI-SQL WHERE-component voor de waarde van de where=<expression> queryparameter. De volgende operators worden ondersteund:

Operator Beschrijving Voorbeeld
= Is gelijk aan &where=Status = 'In Progress'
> Groter dan &where=LastModified > '2018-06-18 20:51:26Z'
>= Groter dan of gelijk aan &where=Priority >= '05'
< Kleiner dan &where=Age < '032'
<= Kleiner dan of gelijk aan &where=Reviewer <= 'Smith'
AND Logisch en &where=Name > 'C' AND Name < 'D'
&where=Age > '032' AND Age < '100'
@container Een container opgeven &where=@container='mycontainer' AND Name = 'C'

Opmerking: de waarde van de where URI-parameter moet correct zijn gecodeerd met URI (inclusief spaties en operators). In de bovenstaande voorbeelden wordt dit weglaten voor leesbaarheid.

Alle tagwaarden zijn tekenreeksen en de ondersteunde binaire relationele operators gebruiken een lexografische sortering van de tagwaarden. Ter ondersteuning van niet-tekenreeksgegevenstypen, waaronder getallen en datums, moeten de juiste opvulling en sorteerbare opmaak worden gebruikt. Tagwaarden moeten tussen enkele aanhalingstekens worden ingesloten.

Als tagnamen reguliere id SQL zijn, zijn ze mogelijk aanwezig zonder escape-id's; Als ze speciale tekens bevatten, moeten ze worden scheidingstekens met dubbele aanhalingstekens (bijvoorbeeld 'TagName' = 'TagValue'). Het is raadzaam om tagnamen altijd tussen dubbele aanhalingstekens te plaatsen.

De opslagservice weigert elke aanvraag die een ongeldige expressie bevat met foutcode 400 (Ongeldige aanvraag).

Zie ook

Gegevens in Azure Blob Storage beheren en zoeken met blobindex
Aanvragen voor Azure Storage
Status- en foutcodes
Foutcodes voor blob-services