Rechercher des objets blob par étiquettes dans le conteneur
L’opération Find Blobs by Tags in Container
recherche tous les objets blob dont les balises correspondent à une expression de recherche dans un conteneur.
Requête
Vous pouvez construire la Find Blobs by Tags in Container
requête comme suit. Nous recommandons HTTPS. Remplacez myaccount par le nom de votre compte de stockage et mycontainer par le nom de votre conteneur de stockage.
URI de requête de méthode GET | Version HTTP |
---|---|
https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=blobs&where=<expression> |
HTTP/1.1 |
Paramètres URI
Vous pouvez spécifier les paramètres supplémentaires suivants dans l’URI de requête :
Paramètre | Description |
---|---|
expression |
Obligatoire. Filtre le jeu de résultats pour inclure uniquement les objets blob dont les balises correspondent à l’expression spécifiée. Pour plus d’informations sur la façon de construire cette expression, consultez remarques plus loin dans cet article. |
marker |
facultatif. Valeur de chaîne qui identifie la partie du jeu de résultats à retourner avec l’opération suivante. L’opération retourne une valeur de marqueur dans le corps de la réponse si le jeu de résultats retourné n’était pas terminé. La valeur du marqueur peut ensuite être utilisée dans un appel suivant pour demander l’ensemble d’éléments suivant. La valeur de marqueur est opaque au client. |
maxresults |
facultatif. Spécifie le nombre maximal d’objets blob à retourner. Si la demande ne spécifie maxresults pas ou spécifie une valeur supérieure à 5 000, le serveur retourne jusqu’à 5 000 éléments. S’il existe des résultats supplémentaires à retourner, le service retourne un jeton de continuation dans l’élément NextMarker response. Dans certains cas, le service peut retourner moins de résultats que maxresults spécifié, mais toujours retourner un jeton de continuation.La définition de maxresults à une valeur inférieure ou égale à zéro entraîne un code de réponse d'erreur 400 (Demande incorrecte). |
timeout |
facultatif. Exprimée en secondes. Pour plus d’informations, consultez Définir des délais d’expiration pour les opérations de stockage Blob. |
En-têtes de requête
Le tableau suivant décrit les en-têtes de requête obligatoires et facultatifs :
En-tête de requête | Description |
---|---|
Authorization |
Obligatoire. Spécifie le schéma d’autorisation, le nom du compte et la signature. Pour plus d’informations, consultez Autoriser les requêtes auprès du Stockage Azure. |
Date ou x-ms-date |
Obligatoire. Spécifie la date/heure en temps universel coordonné (UTC) pour la requête. Pour plus d’informations, consultez Autoriser les requêtes auprès du Stockage Azure. |
x-ms-version |
Obligatoire pour toutes les demandes autorisées, mais facultatif pour les demandes anonymes. Spécifie la version de l'opération à utiliser pour cette demande. Pour plus d'informations, consultez la page Contrôle de version pour les services de Stockage Microsoft Azure. |
x-ms-client-request-id |
facultatif. Fournit une valeur opaque générée par le client avec une limite de caractères de 1 kibioctet (Kio) enregistrée dans les journaux lors de la configuration de la journalisation. Nous vous recommandons vivement d’utiliser cet en-tête pour mettre en corrélation les activités côté client avec les demandes que le serveur reçoit. |
Corps de la demande
Aucun.
response
La réponse inclut un code de status HTTP, des en-têtes de réponse et un corps de réponse.
Code d’état
Une opération réussie envoie le code d'état 200 (OK).
Pour plus d’informations sur les codes status, consultez Codes d’état et d’erreur.
En-têtes de réponse
La réponse de l'opération inclut les en-têtes suivants. La réponse peut également inclure des en-têtes HTTP standard supplémentaires. Tous les en-têtes standard sont conformes à la spécification du protocole HTTP/1.1.
En-tête de réponse | Description |
---|---|
Content-Type |
Spécifie application/xml comme type de contenu. |
Content-Length |
Spécifie la taille du document XML retourné, en octets. |
x-ms-request-id |
Identifie de manière unique la demande qui a été effectuée. Vous pouvez l’utiliser pour résoudre les problèmes liés à la demande. Pour plus d’informations, consultez Résoudre les problèmes liés aux opérations d’API. |
x-ms-version |
Indique la version de Stockage Blob Azure qui a été utilisée pour exécuter la demande. |
Date |
Valeur de date/heure UTC qui indique l’heure à laquelle le service a envoyé la réponse. |
x-ms-client-request-id |
Peut être utilisé pour résoudre les problèmes liés aux demandes et aux réponses correspondantes. La valeur de cet en-tête est égale à la valeur de l’en-tête x-ms-client-request-id , si elle est présente dans la requête et que la valeur est au maximum de 1 024 caractères ASCII visibles. Si l’en-tête x-ms-client-request-id n’est pas présent dans la demande, cet en-tête ne sera pas présent dans la réponse. |
Response body
Le corps de la réponse présente le format suivant :
<?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>
Le corps de la réponse est un document XML UTF-8 bien formé.
Autorisation
Une autorisation est requise lors de l’appel d’une opération d’accès aux données dans stockage Azure. Vous pouvez autoriser l’opération Find Blobs by Tags in Container
comme décrit ci-dessous.
Important
Microsoft recommande d’utiliser Microsoft Entra ID avec des identités managées pour autoriser les demandes dans le stockage Azure. Microsoft Entra ID offre une sécurité et une facilité d’utilisation supérieures par rapport à l’autorisation de clé partagée.
Le Stockage Azure prend en charge l’utilisation de Microsoft Entra ID pour autoriser les demandes de données blob. Avec Microsoft Entra ID, vous pouvez utiliser le contrôle d’accès en fonction du rôle Azure (Azure RBAC) pour accorder des autorisations à un principal de sécurité. Le principal de sécurité peut être un utilisateur, un groupe, un principal de service d’application ou une identité managée Azure. Le principal de sécurité est authentifié par Microsoft Entra ID pour retourner un jeton OAuth 2.0. Le jeton peut ensuite être utilisé pour autoriser une requête auprès du service BLOB.
Pour en savoir plus sur l’autorisation à l’aide de Microsoft Entra ID, consultez Autoriser l’accès aux objets blob à l’aide de Microsoft Entra ID.
Autorisations
Vous trouverez ci-dessous l’action RBAC nécessaire pour qu’un utilisateur, un groupe, une identité managée ou un principal de service Microsoft Entra appelle l’opérationFind Blobs by Tags in Container
, ainsi que le rôle RBAC Azure intégré le moins privilégié qui inclut cette action :
- Action RBAC Azure :Microsoft.Storage/storageAccounts/blobServices/containers/blobs/filter/action
- Rôle intégré le moins privilégié :Propriétaire des données Blob de stockage
Pour en savoir plus sur l’attribution de rôles à l’aide d’Azure RBAC, consultez Attribuer un rôle Azure pour accéder aux données blob.
Remarques
L’opération Find Blobs by Tags in Container
est prise en charge dans l’API REST version 2021-04-10 et ultérieure.
L’index secondaire qui Find Blobs by Tags in Container
utilise est finalement cohérent. Mises à jour aux balises d’objet blob via Set Blob Tags
peuvent ne pas être immédiatement visibles par les Find Blobs by Tags in Container
opérations.
Construction d’une expression de recherche
Le where
paramètre URI recherche les objets blob dans le compte de stockage et le conteneur dont les balises correspondent à une expression. L’expression doit évaluer à true
pour qu’un objet blob soit retourné dans le jeu de résultats.
Le service de stockage prend en charge un sous-ensemble de la grammaire de la clause SQL WHERE
ANSI pour la valeur du where=<expression>
paramètre de requête. Le service de stockage prend en charge les opérateurs suivants :
Opérateur | Description | Exemple |
---|---|---|
= |
Égal à | &where=Status = 'In Progress' |
> |
Supérieur à | &where=LastModified > '2018-06-18 20:51:26Z' |
>= |
Supérieur ou égal à | &where=Priority >= '05' |
< |
Inférieur à | &where=Age < '032' |
<= |
Inférieur ou égal à | &where=Reviewer <= 'Smith' |
AND |
ET logique | &where=Name > 'C' AND Name < 'D' &where=Age > '032' AND Age < '100' |
Notes
La valeur du where
paramètre URI doit être correctement encodée dans l’URI (y compris les espaces et les opérateurs). Les exemples précédents omettent cela pour des motifs de lisibilité.
@container
n’est pas pris en charge lorsque le conteneur fait partie d’un URI.
Toutes les valeurs de balise sont des chaînes. Les opérateurs relationnels binaires pris en charge utilisent un tri lexicographique des valeurs de balise. Pour prendre en charge les types de données autres que les chaînes, y compris les nombres et les dates, vous devez utiliser le remplissage approprié et la mise en forme triable. Les valeurs des étiquettes doivent être placées entre guillemets simples.
Si les noms de balise sont des identificateurs SQL standard, ils peuvent être présents sans échappement. S’ils contiennent des caractères spéciaux, ils doivent être délimités par des guillemets doubles (par exemple, "TagName"
= TagValue
). Nous vous recommandons de toujours placer les noms de balises entre guillemets doubles.
Le service de stockage rejette toute requête qui contient une expression non valide avec le code d’erreur 400 (Demande incorrecte).
Facturation
Les demandes de tarification peuvent provenir de clients qui utilisent les API Stockage Blob, soit directement via l’API REST Stockage Blob, soit à partir d’une bibliothèque cliente stockage Azure. Ces demandes accumulent des frais par transaction. Le type de transaction affecte la façon dont le compte est facturé. Par exemple, les transactions de lecture s’accumulent dans une catégorie de facturation différente de celle des transactions d’écriture. Le tableau suivant montre la catégorie de facturation pour Find Blobs by Tags in Container
les demandes en fonction du type de compte de stockage :
Opération | Type de compte de stockage | Catégorie de facturation |
---|---|---|
Rechercher des objets blob par étiquettes dans le conteneur | Objet blob de blocs Premium Usage général v2 Standard Usage général v1 standard |
Répertorier et Create opérations de conteneur |
Pour en savoir plus sur la tarification de la catégorie de facturation spécifiée, consultez tarification Stockage Blob Azure.
Voir aussi
Gérer et rechercher des données sur Stockage Blob Azure avec des balises d’index d’objet blob
Autoriser les demandes dans le Stockage Azure
Codes d’état et d’erreur
Codes d’erreur stockage Blob