Partager via


Utiliser des balises d’index d’objet blob pour gérer et trouver des données avec Java

Cet article explique comment utiliser des balises d’index de blob pour gérer et rechercher des données en utilisant la bibliothèque de client du Stockage Azure pour Java.

Prérequis

Paramétrer votre environnement

Si vous n’avez pas de projet existant, cette section vous montre comment configurer un projet pour qu’il fonctionne avec la bibliothèque de client Stockage Blob Azure pour Java. Pour plus d’informations, consultez Bien démarrer avec Stockage Blob Azure et Java.

Pour utiliser les exemples de code de cet article, effectuez les étapes suivantes pour configurer votre projet.

Remarque

Cet article utilise l’outil de génération Maven pour générer et exécuter l’exemple de code. D’autres outils de génération, comme Gradle, fonctionnent également avec le Kit de développement logiciel (SDK) Azure pour Java.

Installer des packages

Ouvrez le fichier pom.xml dans votre éditeur de texte. Installez les packages en incluant le fichier de marque d’ordre d’octet ou en incluant une dépendance directe.

Ajouter des instructions import

Ajoutez les instructions import suivantes :

import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;

import java.util.*;

Autorisation

Le mécanisme d’autorisation doit disposer des autorisations nécessaires pour utiliser des balises d’index d’objet blob. Pour l’autorisation avec Microsoft Entra ID (recommandé), vous devez disposer au minimum du rôle RBAC Azure intégré Propriétaire des données Blob du stockage. Pour plus d’informations, consultez les instructions d’autorisation pour Obtenir les étiquettes d’objet blob (API REST), Définir des balises d’objet blob (API REST) ou Rechercher des objets blob par étiquettes (API REST).

Créer un objet client

Pour connecter une application au Stockage Blob, créez une instance de BlobServiceClient.

L’exemple suivant utilise BlobServiceClientBuilder pour générer un objet BlobServiceClient en utilisant DefaultAzureCredential, et montre comment créer si nécessaire des clients de conteneur et de blob :

// Azure SDK client builders accept the credential as a parameter
// TODO: Replace <storage-account-name> with your actual storage account name
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()
        .endpoint("https://<storage-account-name>.blob.core.windows.net/")
        .credential(new DefaultAzureCredentialBuilder().build())
        .buildClient();

// If needed, you can create a BlobContainerClient object from the BlobServiceClient
BlobContainerClient containerClient = blobServiceClient
        .getBlobContainerClient("<container-name>");

// If needed, you can create a BlobClient object from the BlobContainerClient
BlobClient blobClient = containerClient
        .getBlobClient("<blob-name>");

Pour en savoir plus sur la création et la gestion d’objets clients, consultez Créer et gérer des objets clients qui interagissent avec des ressources de données.

À propos des balises d'index blob

Les balises d’index de blob catégorisent les données de votre compte de stockage à l’aide d’attributs de balise clé-valeur. Ces balises sont automatiquement indexées et exposées en tant qu’index multidimensionnel pouvant faire l’objet d’une recherche pour trouver facilement des données. Cet article explique comment définir, obtenir et trouver des données à l’aide de balises d’index d’objets blob.

Les balises d’index blob ne sont pas prises en charge pour les comptes de stockage dont l’espace de noms hiérarchique est activé. Pour en savoir plus sur la fonctionnalité des balises d’index blob, ainsi que sur les problèmes connus et les limitations, consultez Gérer et rechercher des données blob Azure dans l’index d’objet blob.

Définir des étiquettes

Vous pouvez définir des balises d’index si votre code a autorisé l’accès aux données Blob par l’un des mécanismes suivants :

Pour plus d’informations, consultez Définition des balises d’index d’objet blob.

Vous pouvez définir des balises en utilisant la méthode suivante :

Les balises spécifiées dans cette méthode remplacent les balises existantes. Si les anciennes valeurs doivent être conservées, vous devez les télécharger et les ajouter dans l’appel de cette méthode. L’exemple suivant montre comment définir des balises :

public void setBlobTags(BlobClient blobClient) {
    // Get any existing tags for the blob if they need to be preserved
    Map<String, String> tags = blobClient.getTags();

    // Add or modify tags
    tags.put("Sealed", "false");
    tags.put("Content", "image");
    tags.put("Date", "2022-01-01");

    // setTags will replace existing tags with the map entries we pass in
    blobClient.setTags(tags);
}

Vous pouvez supprimer toutes les balises en passant un objet Map vide dans la méthode setTags :

public void clearBlobTags(BlobClient blobClient) {
    Map<String, String> tags = new HashMap<String, String>();
    blobClient.setTags(tags);
}

Obtenir des balises

Vous pouvez obtenir des balises d’index si votre code a autorisé l’accès aux données Blob par l’un des mécanismes suivants :

Pour plus d’informations, consultez Obtention et liste des balises d’index de blob.

Vous pouvez obtenir des balises en utilisant la méthode suivante :

L’exemple suivant montre comment récupérer des balises du blob et leur appliquer une itération :

public void getBlobTags(BlobClient blobClient) {
    Map<String, String> tags = blobClient.getTags();

    System.out.println("Blob tags:");
    for (Map.Entry<String, String> entry : tags.entrySet())
        System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());
}

Filtrer et rechercher des données avec des balises d’index de blobs

Vous pouvez utiliser des balises d’index pour rechercher et filtrer des données si votre code a autorisé l’accès aux données blob par l’un des mécanismes suivants :

Pour plus d’informations, consultez Recherche de données en utilisant les balises d’index de blob.

Notes

Vous ne pouvez pas utiliser de balises d’index pour récupérer des versions précédentes. Les balises pour les versions précédentes ne sont pas passées au moteur d’index de blob. Pour plus d’informations, consultez Conditions et problèmes connus.

Vous pouvez rechercher des données en utilisant l’une des méthodes suivantes :

L’exemple suivant recherche tous les blobs étiquetés comme des images :

public void findBlobsByTag(BlobContainerClient blobContainerClient) {
    String query = "\"Content\"='image'";

    blobContainerClient.findBlobsByTags(query)
            .forEach(blob -> System.out.printf("Name: %s%n", blob.getName()));
}

Ressources

Pour en savoir plus sur l’utilisation des balises d’index afin de gérer et rechercher des données à l’aide de la bibliothèque de client Stockage Blob Azure pour Java, consultez les ressources suivantes.

Exemples de code

Opérations de l'API REST

Le Kit de développement logiciel (SDK) Azure pour Java contient des bibliothèques qui s'appuient sur l'API REST Azure, vous permettant d’interagir avec les opérations de l’API REST par le biais de paradigmes Java familiers. Les méthodes de bibliothèque de client pour la gestion et l’utilisation des balises d’index blob utilisent les opérations d’API REST suivantes :

Ressources de bibliothèque cliente

Voir aussi

  • Cet article fait partie du guide pour les développeurs Stockage Blob pour Java. Pour en savoir plus, consultez la liste complète des articles du guide du développeur dans Générer votre application Java.