Lister les conteneurs de blobs avec Java
Quand vous listez des conteneurs dans un compte de stockage Azure à partir de votre code, vous pouvez spécifier plusieurs options pour gérer la façon dont les résultats sont retournés à partir du stockage Azure. Cet article explique comment lister des conteneurs avec la bibliothèque de client du Stockage Azure pour Java.
Prérequis
- Abonnement Azure : créez-en un gratuitement
- Compte de stockage Azure : créez un compte de stockage
- Kit de développement Java (JDK) version 8 ou ultérieure (nous recommandons la version 17 pour une expérience optimale)
- Apache Maven est utilisé pour la gestion de projet dans cet exemple
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.core.http.rest.*;
import com.azure.storage.blob.*;
import com.azure.storage.blob.models.*;
Autorisation
Le mécanisme d’autorisation doit disposer des autorisations nécessaires pour répertorier des conteneurs d’objets blob. Pour l’autorisation avec Microsoft Entra ID (recommandé), vous devez disposer au minimum du rôle RBAC Azure intégré Contributeur aux données Blob du stockage. Pour en savoir plus, consultez les conseils d’autorisation pour Lister des conteneurs (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 options de la liste de conteneurs
Quand vous listez les conteneurs dans votre code, vous pouvez spécifier des options pour gérer la façon dont les résultats sont retournés par le Stockage Azure. Vous pouvez spécifier le nombre de résultats à retourner dans chaque ensemble de résultats, puis récupérer les ensembles suivants. Vous pouvez également filtrer les résultats par un préfixe et retourner des métadonnées de conteneur avec les résultats. Les étapes de cette procédure sont décrites dans les sections suivantes.
Pour répertorier les conteneurs dans un compte de stockage, appelez la méthode suivante :
Cette méthode retourne une itérable de type BlobContainerItem. Les conteneurs sont classés lexicographiquement par nom.
Gérez le nombre de résultats retournés
Par défaut, une opération de dressage de liste renvoie jusqu’à 5 000 résultats à la fois. Pour retourner un ensemble de résultats plus petit, fournissez une valeur différente de zéro pour la taille de la page de résultats à retourner. Vous pouvez définir cette valeur à l’aide de la méthode suivante :
Les exemples présentés dans cet article vous montrent comment restituer les résultats en pages. Pour en savoir plus sur les concepts de pagination, consultez Pagination avec le kit de développement logiciel (SDK) Azure pour Java.
Filtrez les résultats avec un préfixe
Pour filtrer la liste des conteneurs, spécifiez une chaîne pour le paramètre prefix
. La chaîne de préfixe peut inclure un ou plusieurs caractères. Le stockage Azure retourne alors uniquement les conteneurs dont les noms commencent par ce préfixe. Vous pouvez définir cette valeur à l’aide de la méthode suivante :
Inclure des métadonnées de conteneur
Pour inclure des métadonnées de conteneur avec les résultats, créez une instance BlobContainerListDetails
et passez true
à la méthode suivante :
Passez ensuite l’objet BlobContainerListDetails
à la méthode suivante :
Inclure des conteneurs supprimés
Pour inclure des conteneurs supprimés de manière réversible aux résultats, créez une instance BlobContainerListDetails
et passez true
à la méthode suivante :
Passez ensuite l’objet BlobContainerListDetails
à la méthode suivante :
Exemples de code
L’exemple suivant liste les conteneurs et filtre les résultats selon un préfixe spécifié :
public void listContainers(BlobServiceClient blobServiceClient) {
// Set a prefix to filter results based on a specified character or string
ListBlobContainersOptions options = new ListBlobContainersOptions()
.setPrefix("container-");
System.out.println("List containers:");
for (BlobContainerItem blobContainerItem : blobServiceClient.listBlobContainers(options, null)) {
System.out.printf("Container name: %s%n", blobContainerItem.getName());
}
}
Vous pouvez également retourner un ensemble plus petit de résultats, en spécifiant la taille de la page de résultats à retourner :
public void listContainersWithPaging(BlobServiceClient blobServiceClient) {
// Set a prefix to filter results and specify a page limit
ListBlobContainersOptions options = new ListBlobContainersOptions()
.setMaxResultsPerPage(2) // Low number for demonstration purposes
.setPrefix("container-");
int i = 0;
Iterable<PagedResponse<BlobContainerItem>> blobContainerPages = blobServiceClient
.listBlobContainers(options, null).iterableByPage();
for (PagedResponse<BlobContainerItem> page : blobContainerPages) {
System.out.printf("Page %d%n", ++i);
page.getElements().forEach(container -> {
System.out.printf("Name: %s%n", container.getName());
});
}
}
Ressources
Pour en savoir plus sur la création de listes de conteneurs à 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 le listing de conteneurs utilisent l’opération d’API REST suivante :
- List Containers (API REST)
Ressources de bibliothèque cliente
- Documentation de référence sur la bibliothèque cliente
- Code source de la bibliothèque de client
- Package (Maven)
Voir aussi
Contenu connexe
- Cet article fait partie du guide pour les développeurs Stockage Blob pour Java. Pour découvrir plus d’informations, consultez la liste complète des articles du guide du développeur dans Générer votre application Java.