Suchen nach Blobs anhand von Tags

Der Find Blobs by Tags Vorgang findet alle Blobs im Speicherkonto, deren Tags mit einem Suchausdruck übereinstimmen.

Anforderung

Sie können die Find Blobs by Tags Anforderung wie folgt erstellen. Wir empfehlen HTTPS. Ersetzen Sie myaccount durch den Namen Ihres Speicherkontos.

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

URI-Parameter

Sie können im Anforderungs-URI die folgenden zusätzlichen Parameter angeben:

Parameter BESCHREIBUNG
expression Erforderlich. Filtert das Resultset so, dass nur Blobs enthalten sind, deren Tags dem angegebenen Ausdruck entsprechen.

Weitere Informationen zum Erstellen dieses Ausdrucks finden Sie unter Hinweise.
marker Optional. Ein Zeichenfolgenwert, der den Teil des Resultsets angibt, der beim nächsten Vorgang zurückgegeben werden soll. Der Vorgang gibt einen Markerwert innerhalb des Antworttexts zurück, wenn das zurückgegebene Resultset nicht vollständig war. Der Markerwert kann dann in einem nachfolgenden Aufruf verwendet werden, um den nächsten Satz von Elementen anzufordern.

Der Markerwert ist für den Client nicht transparent.
maxresults Optional. Gibt die maximale Anzahl von Blobs an, die zurückgegeben werden sollen. Wenn die Anforderung keinen Wert größer als 5.000 angibt maxresults oder angibt, gibt der Server bis zu 5.000 Elemente zurück. Wenn zusätzliche Ergebnisse zurückgegeben werden sollen, gibt der Dienst ein Fortsetzungstoken im NextMarker Antwortelement zurück. In bestimmten Fällen gibt der Dienst möglicherweise weniger Ergebnisse als maxresults angegeben zurück. Der Dienst kann auch ein Fortsetzungstoken zurückgeben.

Wenn maxresults auf einen Wert kleiner oder gleich 0 festgelegt ist, wird Fehlerantwortcode 400 ausgegeben (ungültige Anforderung).
timeout Optional. Ausgedrückt in Sekunden. Weitere Informationen finden Sie unter Festlegen von Timeouts für Blob Storage-Vorgänge.

Anforderungsheader

In der folgenden Tabelle werden erforderliche und optionale Anforderungsheader beschrieben:

Anforderungsheader BESCHREIBUNG
Authorization Erforderlich. Gibt das Autorisierungsschema, den Kontonamen und die Signatur an. Weitere Informationen finden Sie unter Autorisieren von Anforderungen an Azure Storage.
Date oder x-ms-date Erforderlich. Gibt die koordinierte Weltzeit (Coordinated Universal Time, UTC) für die Anforderung an. Weitere Informationen finden Sie unter Autorisieren von Anforderungen an Azure Storage.
x-ms-version Erforderlich für alle autorisierten Anforderungen, aber optional für anonyme Anforderungen. Gibt die Version des für die Anforderung zu verwendenden Vorgangs an. Weitere Informationen finden Sie unter Versionsverwaltung für die Azure-Speicherdienste.
x-ms-client-request-id Optional. Stellt einen vom Client generierten, undurchsichtigen Wert mit einem Zeichenlimit von 1 Kibibyte (KiB) bereit, der beim Konfigurieren der Protokollierung in den Protokollen aufgezeichnet wird. Es wird dringend empfohlen, diesen Header zu verwenden, um clientseitige Aktivitäten mit Anforderungen zu korrelieren, die der Server empfängt.

Anforderungstext

Keine.

Antwort

Die Antwort enthält einen HTTP-status-Code, Antwortheader und einen Antworttext.

Statuscode

Bei einem erfolgreichen Vorgang wird der Statuscode 200 (OK) zurückgegeben.

Informationen zu status Codes finden Sie unter Status- und Fehlercodes.

Antwortheader

Die Antwort für diesen Vorgang umfasst die folgenden Header. Die Antwort kann auch zusätzliche HTTP-Standardheader enthalten. Alle Standardheader entsprechen der HTTP/1.1-Protokollspezifikation.

Antwortheader BESCHREIBUNG
Content-Type Gibt application/xml als Inhaltstyp an.
Content-Length Gibt die Größe des zurückgegebenen XML-Dokuments in Bytes an.
x-ms-request-id Identifiziert eindeutig die Anforderung, die gestellt wurde. Sie können es verwenden, um die Problembehandlung für die Anforderung zu beheben. Weitere Informationen finden Sie unter Problembehandlung bei API-Vorgängen.
x-ms-version Gibt die Version von Azure Blob Storage an, die zum Ausführen der Anforderung verwendet wurde.
Date Ein UTC-Datums-/Uhrzeitwert, der die Uhrzeit angibt, zu der der Dienst die Antwort gesendet hat.
x-ms-client-request-id Kann verwendet werden, um Anforderungen und entsprechende Antworten zu behandeln. Der Wert dieses Headers ist gleich dem Wert des x-ms-client-request-id Headers, wenn er in der Anforderung vorhanden ist und der Wert höchstens 1.024 sichtbare ASCII-Zeichen aufweist. Wenn der x-ms-client-request-id Header in der Anforderung nicht vorhanden ist, ist dieser Header in der Antwort nicht vorhanden.

Antworttext

In Version 2020-04-08 und höher werden die übereinstimmenden Tags des Blobs in einem Tags Element gekapselt. Der Antworttext weist das folgende Format auf:

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

Der Antworttext ist ein wohlgeformtes UTF-8-XML-Dokument.

Authorization

Beim Aufrufen eines Datenzugriffsvorgangs in Azure Storage ist eine Autorisierung erforderlich. Sie können den Find Blobs by Tags Vorgang wie unten beschrieben autorisieren.

Azure Storage unterstützt die Verwendung von Microsoft Entra ID zum Autorisieren von Anforderungen an Blobdaten. Mit Microsoft Entra ID können Sie die rollenbasierte Zugriffssteuerung (Azure RBAC) von Azure verwenden, um einem Sicherheitsprinzipal Berechtigungen zu erteilen. Der Sicherheitsprinzipal kann ein Benutzer, eine Gruppe, ein Anwendungsdienstprinzipal oder eine verwaltete Azure-Identität sein. Der Sicherheitsprinzipal wird von Microsoft Entra ID authentifiziert, um ein OAuth 2.0-Token zurückzugeben. Das Token kann anschließend zum Autorisieren einer Anforderung an den Blob-Dienst verwendet werden.

Weitere Informationen zur Autorisierung mit Microsoft Entra ID finden Sie unter Autorisieren des Zugriffs auf Blobs mit Microsoft Entra ID.

Berechtigungen

Im Folgenden sind die RBAC-Aktion aufgeführt, die für einen Microsoft Entra Benutzer, Eine Gruppe oder einen Dienstprinzipal erforderlich ist, um den Find Blobs by Tags Vorgang aufzurufen, und die integrierte Azure RBAC-Rolle mit den geringsten Berechtigungen, die diese Aktion enthält:

Weitere Informationen zum Zuweisen von Rollen mithilfe von Azure RBAC finden Sie unter Zuweisen einer Azure-Rolle für den Zugriff auf Blobdaten.

Hinweise

Der Find Blobs by Tags Vorgang wird in der REST-API-Version 2019-12-12 und höher unterstützt.

Für Konten mit aktiviertem hierarchischen Namespace wird der Find Blobs by Tags Vorgang nicht unterstützt, da Blobtags für hierarchische Namespacekonten nicht unterstützt werden.

Der sekundäre Index, der verwendet wird, Find Blobs by Tags ist schließlich konsistent. Updates zu Blobtags über Set Blob Tags sind für Vorgänge möglicherweise nicht sofort sichtbarFind Blobs by Tags.

Erstellen eines Suchausdrucks

Der where URI-Parameter findet Blobs im Speicherkonto, deren Tags mit einem Ausdruck übereinstimmen. Der Ausdruck muss ausgewertet werden, damit true ein Blob im Resultset zurückgegeben wird.

Der Speicherdienst unterstützt eine Teilmenge der ANSI SQL-Klauselgrammatik WHERE für den Wert des where=<expression> Abfrageparameters. Der Speicherdienst unterstützt die folgenden Operatoren:

Operator BESCHREIBUNG Beispiel
= Gleich &where=Status = 'In Progress'
> Größer als &where=LastModified > '2018-06-18 20:51:26Z'
>= Größer als oder gleich &where=Priority >= '05'
< Kleiner als &where=Age < '032'
<= Kleiner als oder gleich &where=Reviewer <= 'Smith'
AND Logisches AND &where=Name > 'C' AND Name < 'D'
&where=Age > '032' AND Age < '100'
@container Angeben eines Containers &where=@container='mycontainer' AND Name = 'C'

Hinweis

Der Wert des where URI-Parameters muss ordnungsgemäß URI-codiert sein (einschließlich Leerzeichen und Operatoren). In den vorherigen Beispielen wird dies aus Gründen der Lesbarkeit weggelassen.

Alle Tagwerte sind Zeichenfolgen. Die unterstützten binären relationalen Operatoren verwenden eine lexikographische Sortierung der Tagwerte. Um Nicht-Zeichenfolgen-Datentypen zu unterstützen, einschließlich Zahlen und Datumsangaben, müssen Sie entsprechende Auffüllungen und sortierbare Formatierungen verwenden. Tagwerte müssen in einfache Anführungszeichen eingeschlossen werden.

Wenn Tagnamen reguläre SQL-Bezeichner sind, können sie ohne Flucht vorhanden sein. Wenn sie Sonderzeichen enthalten, müssen sie mit doppelten Anführungszeichen (z. B "TagName" = TagValue. ) getrennt werden. Es wird empfohlen, Tagnamen immer in doppelte Anführungszeichen zu setzen.

Der Speicherdienst lehnt jede Anforderung ab, die einen ungültigen Ausdruck mit dem Fehlercode 400 (Ungültige Anforderung) enthält.

Abrechnung

Preisanforderungen können von Clients stammen, die Blob Storage-APIs verwenden, entweder direkt über die Blob Storage-REST-API oder aus einer Azure Storage-Clientbibliothek. Für diese Anforderungen fallen Gebühren pro Transaktion an. Die Art der Transaktion wirkt sich auf die Belastung des Kontos aus. Beispielsweise werden Lesetransaktionen in eine andere Abrechnungskategorie als das Schreiben von Transaktionen angewendet. Die folgende Tabelle zeigt die Abrechnungskategorie für Find Blobs by Tags Anforderungen basierend auf dem Speicherkontotyp:

Vorgang Speicherkontotyp Abrechnungskategorie
Suchen nach Blobs anhand von Tags Premium, Blockblob
Standard „Allgemein v2“
Standard „Allgemein v1“
Auflisten und Erstellen von Containervorgängen

Weitere Informationen zu Preisen für die angegebene Abrechnungskategorie finden Sie unter Azure Blob Storage Preise.

Weitere Informationen

Verwalten und Suchen von Daten auf Azure Blob Storage mit Blobindextags
Autorisieren von Anforderungen an Azure Storage
Status- und Fehlercodes
Blob Storage-Fehlercodes