Supprimer et restaurer un conteneur d’objets blob avec Go
Cet article explique comment supprimer des conteneurs à l’aide du module client Stockage Azure pour Go. 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
- Go 1.18+
Paramétrer votre environnement
Si vous n’avez aucun projet existant, cette section montre comment configurer un projet pour qu’il fonctionne avec le module client du Stockage Blob Azure pour Go. Les étapes incluent l’installation du module, l’ajout de chemins d’accès import
et la création d’un objet client autorisé. Pour plus d’informations, consultez Prise en main de Stockage Blob Azure et de Go.
Installer des modules
Installez le module azblob à l’aide de la commande suivante :
go get github.com/Azure/azure-sdk-for-go/sdk/storage/azblob
Pour vous authentifier auprès de Microsoft Entra ID (recommandé), installez le module azidentity
à l’aide de la commande suivante :
go get github.com/Azure/azure-sdk-for-go/sdk/azidentity
Ajouter des chemins d’importation
Dans votre fichier de code, ajoutez les chemins d’importation suivants :
import (
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/storage/azblob"
)
Ces chemins d’importation représentent le minimum nécessaire pour démarrer. Certains exemples de code de cet article peuvent nécessiter des chemins d’importation supplémentaires. Pour plus d’informations et des exemples d’utilisation spécifiques, consultez Exemples de code.
Créer un objet client
Pour connecter une application à Stockage Blob, créez un objet client à l’aide de azblob.NewClient. L’exemple suivant montre comment créer un objet client à l’aide de DefaultAzureCredential
pour l’autorisation :
func getServiceClientTokenCredential(accountURL string) *azblob.Client {
// Create a new service client with token credential
credential, err := azidentity.NewDefaultAzureCredential(nil)
handleError(err)
client, err := azblob.NewClient(accountURL, credential, nil)
handleError(err)
return client
}
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).
Supprimer un conteneur
Pour supprimer un conteneur, appelez la méthode suivante :
Après avoir supprimé un conteneur, vous ne pouvez pas créer un conteneur portant 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 objets blob qu’il contient échouent avec le code d’erreur HTTP 404 (Not Found)
.
L’exemple suivant indique comment supprimer un conteneur spécifié :
func deleteContainer(client *azblob.Client, containerName string) {
// Delete the container
_, err := client.DeleteContainer(context.TODO(), containerName, nil)
handleError(err)
}
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 à partir du ServiceClient incorporé pour l’objet client :
L’exemple suivant répertorie les conteneurs, y compris les conteneurs supprimés de manière réversible, et effectue une itération sur la liste pour restaurer le conteneur supprimé de manière réversible spécifié :
func restoreDeletedContainer(client *azblob.Client, containerName string) {
// List containers, included deleted ones
pager := client.NewListContainersPager(&azblob.ListContainersOptions{
Include: azblob.ListContainersInclude{Deleted: true},
})
for pager.More() {
resp, err := pager.NextPage(context.TODO())
handleError(err)
for _, container := range resp.ContainerItems {
if *container.Name == containerName && *container.Deleted {
// Restore the deleted container
_, err := client.ServiceClient().RestoreContainer(context.TODO(), containerName, *container.Version, nil)
handleError(err)
}
}
}
}
Remarque
Les exemples de code de ce guide sont conçus pour vous aider à bien démarrer avec Stockage Blob Azure et Go. Vous devez modifier la gestion des erreurs et les valeurs Context
pour répondre aux besoins de votre application.
Ressources
Pour en savoir plus sur la suppression d’un conteneur à l’aide du module client Stockage Blob Azure pour Go, consultez les ressources suivantes.
Exemples de code
- Afficher des exemples de code de cet article (GitHub)
Opérations de l'API REST
Le kit de développement logiciel (SDK) Azure pour Go contient des bibliothèques qui s’appuient sur l’API REST Azure et vous permettant d’interagir avec des opérations de l’API REST par le biais de paradigmes Go 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 du module client
- Documentation de référence sur les modules clients
- Code source du module client
- Package (pkg.go.dev)
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 du développeur Stockage Blob pour Go. Pour en savoir plus, consultez la liste complète des articles du guide du développeur dans Générer votre application Go.