Supprimer et restaurer un blob avec .NET
Cet article explique comment supprimer des blobs avec la bibliothèque de client Stockage Azure pour .NET. Si vous avez activé la suppression réversible pour les objets blob, vous pouvez restaurer les objets blob supprimés pendant la période de rétention.
Prérequis
- Cet article suppose qu’un projet est déjà configuré pour fonctionner avec la bibliothèque de client Stockage Blob Azure pour .NET. Pour en savoir plus sur la configuration de votre projet, y compris l'installation du package, l'ajout de directives
using
et la création d'un objet client autorisé, consultez Bien démarrer avec Stockage Microsoft Azure et .NET. - Le mécanisme d'autorisation doit avoir des autorisations pour supprimer un blob ou pour restaurer un blob supprimé de manière réversible. Pour plus d’informations, consultez les conseils d’autorisation pour les opérations d’API REST suivantes :
Supprimer un objet blob
Pour supprimer un blob, appelez l’une de ces méthodes :
L’exemple suivant supprime un blob :
public static async Task DeleteBlobAsync(BlobClient blob)
{
await blob.DeleteAsync();
}
Si le blob a des instantanés associés, vous devez supprimer tous ses instantanés pour le supprimer. L’exemple suivant supprime un blob et ses instantanés :
public static async Task DeleteBlobSnapshotsAsync(BlobClient blob)
{
// Delete a blob and all of its snapshots
await blob.DeleteAsync(snapshotsOption: DeleteSnapshotsOption.IncludeSnapshots);
// Delete only the blob's snapshots
//await blob.DeleteAsync(snapshotsOption: DeleteSnapshotsOption.OnlySnapshots);
}
Pour supprimer uniquement les instantanés et non le blob lui-même, vous pouvez passer le paramètre DeleteSnapshotsOption.OnlySnapshots
.
Restaurer un objet blob supprimé
La suppression réversible d’objets blob protège un objet blob et ses versions, instantanés et métadonnées contre les suppressions ou les remplacements accidentels en conservant les données supprimées dans le système pendant un laps de temps spécifié. Pendant la période de rétention, vous pouvez restaurer l’objet blob à son état au moment de la suppression. Une fois la période de conservation expirée, l’objet est supprimé définitivement. Pour plus d’informations sur la suppression réversible d’objets blob, consultez Suppression réversible pour les objets blob.
Vous pouvez utiliser les bibliothèques de client de Stockage Azure pour restaurer un objet blob ou une capture instantanée supprimés de manière réversible.
La façon de restaurer un objet blob supprimé de manière réversible dépend de l’activation du contrôle de version d’objets blob de votre compte de stockage. Pour plus d’informations sur la gestion de versions des objets blob, consultez Gestion de versions des objets blob. Consultez l’une des sections suivantes en fonction de votre scénario :
- Le contrôle de version d’objets blob n’est pas activé
- Le contrôle de version d’objets blob est activé
Restaurer des objets supprimés de manière réversible quand le contrôle de version est désactivé
Pour restaurer des blobs supprimés quand le versioning n’est pas activé, appelez l’une des méthodes suivantes :
Ces méthodes restaurent les blobs supprimés de manière réversible et les instantanés supprimés qui leur sont associés. L’appel de l’une de ces méthodes pour un blob qui n’a pas été supprimé n’a aucun effet. L’exemple suivant restaure tous les blobs supprimés de manière réversible et leurs instantanés dans un conteneur :
public static async Task RestoreBlobsAsync(BlobContainerClient container)
{
foreach (BlobItem blob in container.GetBlobs(BlobTraits.None, BlobStates.Deleted))
{
await container.GetBlockBlobClient(blob.Name).UndeleteAsync();
}
}
Pour restaurer un instantané supprimé de manière réversible, commencez par appeler la méthode Undelete ou UndeleteAsync sur le blob de base, puis copiez l’instantané souhaité sur le blob de base. Dans l’exemple suivant, un objet blob de blocs est restauré avec la dernière capture instantanée générée :
public static async Task RestoreSnapshotsAsync(
BlobContainerClient container,
BlobClient blob)
{
// Restore the deleted blob
await blob.UndeleteAsync();
// List blobs in this container that match prefix
// Include snapshots in listing
Pageable<BlobItem> blobItems = container.GetBlobs(
BlobTraits.None,
BlobStates.Snapshots,
prefix: blob.Name);
// Get the URI for the most recent snapshot
BlobUriBuilder blobSnapshotUri = new BlobUriBuilder(blob.Uri)
{
Snapshot = blobItems
.OrderByDescending(snapshot => snapshot.Snapshot)
.ElementAtOrDefault(0)?.Snapshot
};
// Restore the most recent snapshot by copying it to the blob
await blob.StartCopyFromUriAsync(blobSnapshotUri.ToUri());
}
Restaurer des objets blob supprimés de manière réversible lorsque le contrôle de version est activé
Si un compte de stockage est configuré pour activer le contrôle de version de blobs, la suppression d’un blob définit la version actuelle du blob comme version précédente. Pour restaurer un blob supprimé de manière réversible quand le versioning est activé, copiez une version précédente sur le blob de base. Vous pouvez utiliser l’une des méthodes suivantes :
L’exemple de code suivant montre comment obtenir la dernière version d’un blob supprimé et la restaurer en la copiant dans le blob de base :
public static void RestoreBlobWithVersioning(
BlobContainerClient container,
BlobClient blob)
{
// List blobs in this container that match prefix
// Include versions in listing
Pageable<BlobItem> blobItems = container.GetBlobs(
BlobTraits.None,
BlobStates.Version,
prefix: blob.Name);
// Get the URI for the most recent version
BlobUriBuilder blobVersionUri = new BlobUriBuilder(blob.Uri)
{
VersionId = blobItems.
OrderByDescending(version => version.VersionId).
ElementAtOrDefault(0)?.VersionId
};
// Restore the most recently generated version by copying it to the base blob
blob.StartCopyFromUri(blobVersionUri.ToUri());
}
Ressources
Pour en savoir plus sur la suppression d’objets blob et la restauration d’objets blob supprimés en utilisant la bibliothèque de client du Stockage Blob Azure pour .NET, consultez les ressources suivantes.
Opérations de l'API REST
Le Kit de développement logiciel (SDK) Azure pour .NET 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 .NET familiers. Les méthodes de la bibliothèque de client pour supprimer des objets blob et restaurer des objets blob supprimés utilisent les opérations d’API REST suivantes :
- Delete Blob (API REST)
- Undelete Blob (API REST)
Exemples de code
Ressources de bibliothèque cliente
- Documentation de référence sur la bibliothèque cliente
- Code source de la bibliothèque de client
- Package (NuGet)