Supprimer et restaurer un conteneur d’objets blob avec Java
Cet article explique comment supprimer des conteneurs avec la bibliothèque de client du Stockage Azure pour Java. Si vous avez activé la suppression réversible de conteneur, vous pouvez restaurer les conteneurs supprimés.
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.storage.blob.*;
import com.azure.storage.blob.models.*;
Autorisation
Le mécanisme d’autorisation doit disposer des autorisations nécessaires pour supprimer ou restaurer un conteneur. Pour l’autorisation avec Microsoft Entra ID (recommandé), il vous faut un rôle intégré RBAC Azure Contributeur aux données Stockage Blob ou version ultérieure. Pour plus d’informations, consultez les instructions d’autorisation pour supprimer un conteneur (API REST) et restaurer un conteneur (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.
Supprimer un conteneur
Pour supprimer un conteneur dans Java, utilisez l’une des méthodes suivantes de la classe BlobServiceClient
:
Vous pouvez également supprimer un conteneur avec l’une des méthodes suivantes de la classe BlobContainerClient
:
Après avoir supprimé un conteneur, vous ne pouvez pas créer de conteneur avec le même nom pendant au moins 30 secondes. Si vous essayez de créer un conteneur du même nom, la tentative échoue avec le code d’erreur HTTP 409 (Conflict)
. Toutes les autres opérations sur le conteneur ou les blobs qu’il contient échouent avec le code d’erreur HTTP 404 (Not Found)
.
L’exemple suivant utilise un objet BlobServiceClient
pour supprimer le conteneur spécifié :
public void deleteContainer(BlobServiceClient blobServiceClient, String containerName) {
// Delete the container using the service client
blobServiceClient.deleteBlobContainer(containerName);
}
L’exemple suivant montre comment supprimer tous les conteneurs qui commencent par un préfixe spécifié :
public void deleteContainersWithPrefix(BlobServiceClient blobServiceClient) {
ListBlobContainersOptions options = new ListBlobContainersOptions()
.setPrefix("container-");
// Delete the container with the specified prefix using the service client
for (BlobContainerItem containerItem : blobServiceClient.listBlobContainers(options, null)) {
BlobContainerClient containerClient = blobServiceClient.getBlobContainerClient(containerItem.getName());
containerClient.delete();
}
}
Restaurer un conteneur supprimé
Quand la suppression réversible de conteneur est activée pour un compte de stockage, un conteneur supprimé et son contenu peuvent être récupérés pendant la période de conservation spécifiée. Pour en savoir plus sur la suppression réversible de conteneur, consultez Activer et gérer la suppression réversible pour les conteneurs. Vous pouvez restaurer un conteneur supprimé de manière réversible en appelant la méthode suivante de la classe BlobServiceClient
:
L’exemple suivant recherche un conteneur supprimé, obtient la version de ce conteneur supprimé, puis passe la version dans la méthode undeleteBlobContainer
pour restaurer le conteneur.
public void restoreContainer(BlobServiceClient blobServiceClient) {
ListBlobContainersOptions options = new ListBlobContainersOptions();
options.getDetails().setRetrieveDeleted(true);
// Delete the container with the specified prefix using the service client
for (BlobContainerItem deletedContainerItem : blobServiceClient.listBlobContainers(options, null)) {
BlobContainerClient containerClient = blobServiceClient
.undeleteBlobContainer(deletedContainerItem.getName(), deletedContainerItem.getVersion());
}
}
Ressources
Pour en savoir plus sur la suppression d’un conteneur à 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 suppression ou la restauration d’un conteneur utilisent les opérations d’API REST suivantes :
- Delete Container (API REST)
- Restore Container (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
- Suppression réversible des conteneurs
- Activer et gérer la suppression réversible pour les conteneurs
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.