Fonctionnement de la gestion des versions S3 - Amazon Simple Storage Service

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Fonctionnement de la gestion des versions S3

Vous pouvez utiliser la gestion des versions S3 pour conserver plusieurs versions d'un objet dans un même compartiment afin de pouvoir restaurer des objets qui sont accidentellement supprimés ou remplacés. Par exemple, si vous appliquez la gestion des versions S3 à un compartiment, les modifications suivantes se produisent :

  • Si vous supprimez un objet, au lieu de supprimer l'objet définitivement, Amazon S3 insère un marqueur de suppression, qui devient la version d'objet actuelle. Vous pouvez ensuite restaurer la version précédente. Pour plus d’informations, consultez Suppression des versions d'objet d'un compartiment activé pour la gestion des versions.

  • Si vous remplacez un objet, Amazon S3 ajoute une nouvelle version d'objet dans le compartiment. La version précédente reste dans le compartiment et devient une version ancienne. Vous pouvez restaurer la version précédente.

Note

Les tarifs Amazon S3 normaux s'appliquent pour chaque version d'un objet stocké et transféré. Chaque version d'un objet est l'objet entier ; il n'est pas différent de la version précédente. Par conséquent, si vous possédez trois versions d'un objet stocké, vous êtes facturé pour trois objets.

Chaque compartiment S3 créé possède une sous-ressource de gestion des version qui lui est associée. (Pour plus d'informations, consultez Options de configuration des compartiments.) Par défaut, votre compartiment est non versionné, et la sous-ressource de la gestion des versions stocke une configuration de gestion des versions vide, comme suit :

<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> </VersioningConfiguration>

Pour activer la gestion des versions, vous pouvez envoyer une demande à Amazon S3 avec une configuration de la gestion des versions qui inclut un statut Enabled.

<VersioningConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <Status>Enabled</Status> </VersioningConfiguration>

Pour désactiver la gestion des versions, vous configurez la valeur de l'état sur Suspended.

Note

Quand vous activez la gestion des versions sur un compartiment pour la première fois, la propagation complète de la modification peut prendre un court laps de temps. Nous vous recommandons d'attendre 15 minutes après l'activation de la gestion des versions avant d'exécuter des opérations d'écriture (PUT ou DELETE) sur les objets du compartiment.

Le propriétaire du bucket et tous les utilisateurs autorisés AWS Identity and Access Management (IAM) peuvent activer le versionnement. Le propriétaire du bucket est celui Compte AWS qui l'a créé. Pour plus d’informations sur les autorisations, consultez Identity and Access Management pour Amazon S3.

Pour plus d'informations sur l'activation et la désactivation de la gestion des versions S3 à l'aide du AWS Management Console, AWS Command Line Interface (AWS CLI) ou RESTAPI, consultez. Activation de la gestion des versions sur les compartiments

Version IDs

Si vous activez la gestion des versions pour un compartiment, Simple Storage Service (Amazon S3) génère automatiquement un ID de version unique pour l'objet qui est stocké. Par exemple, dans un compartiment, vous pouvez avoir deux objets dotés de la même clé (nom de l'objet) mais d'une version différenteIDs, par exemple photo.gif (version 111111) et photo.gif (version 121212).

Schéma illustrant un compartiment activé pour la gestion des versions comportant deux objets dotés de la même clé mais d'une version différente. IDs

Chaque objet possède un ID de version, que la gestion des versions S3 soit activée ou non. Si la gestion des versions S3 n'est pas activée, Amazon S3 définit la valeur de l'ID de version sur null. Si vous activez la gestion des versions S3, Simple Storage Service (Amazon S3) attribue une valeur d'ID de version à l'objet. Cette valeur distingue l'objet des autres versions de la même clé.

Lorsque vous activez la gestion des versions S3 dans un compartiment existant, les objets déjà stockés dans le compartiment ne changent pas. Leur version IDs (null), leur contenu et leurs autorisations restent les mêmes. Après avoir activé la gestion des versions S3, chaque objet ajouté au compartiment obtient un ID de version, qui le distingue des autres versions de la même clé.

Seul Amazon S3 génère des versions IDs et elles ne peuvent pas être modifiées. IDsLes versions sont des chaînes opaques codées en Unicode UTF URL -8, prêtes à l'emploi, d'une longueur maximale de 1 024 octets. Voici un exemple :

3sL4kqtJlcpXroDTDmJ+rmSpXd3dIbrHY+MTRCxf3vjVBH40Nr8X8gdRQBpUMLUo

Note

Pour des raisons de simplicité, les autres exemples de cette rubrique sont beaucoup plus courtsIDs.

Flux de travail de la gestion des versions

Lorsque vous faites une demande PUT sur un objet dans un compartiment activé pour la gestion des versions, l'ancienne version n'est pas remplacée. Comme le montre la figure suivante, lorsqu'une nouvelle version de photo.gif est PUT dans un compartiment qui contient déjà un objet portant le même nom, le comportement suivant se produit :

  • L'objet d'origine (ID = 111111) reste dans le compartiment.

  • Amazon S3 génère un nouvel ID de version (121212) et ajoute cette nouvelle version de l'objet au compartiment.

Diagramme illustrant le fonctionnement de la gestion des versions S3 lorsque vous faites une requête PUT sur un objet dans un compartiment compatible avec la gestion des versions.

Cette fonctionnalité vous permet de récupérer une version précédente d'un objet si celui-ci a été accidentellement remplacé ou supprimé.

Lorsque vous faites une requête DELETE sur un objet, toutes les versions restent dans le compartiment et Amazon S3 insère un marqueur de suppression, comme illustré dans le schéma suivant.

Illustration illustrant l'insertion d'un marqueur de suppression.

Le marqueur de suppression devient la version actuelle de l'objet. Par défaut, les demandes GET récupèrent la version la plus récemment stockée. Le fait d'effectuer une requête GET Object lorsque la version actuelle est un marqueur de suppression renvoie une erreur 404 Not Found, comme illustré dans la figure suivante.

Illustration illustrant un GetObject appel à un marqueur de suppression renvoyant une erreur 404 (introuvable).

Vous pouvez, toutefois, vous pouvez faire une demande GET sur une ancienne version d'un objet en spécifiant son ID de version. Dans le schéma suivant, vous faites une demande GET sur une version d'objet spécifique, 111111. Amazon S3 renvoie une version d'objet même s'il ne s'agit pas de la version actuelle.

Pour plus d’informations, consultez Récupération de versions d'objets à partir d'un compartiment activé pour la gestion des versions.

Diagramme illustrant le fonctionnement de la gestion des versions S3 lorsque vous faites une requête GET sur une version ancienne dans un compartiment compatible avec la gestion des versions.

Vous pouvez supprimer définitivement un objet en spécifiant la version que vous souhaitez supprimer. Seul le propriétaire d'un compartiment Amazon S3 ou un IAM utilisateur autorisé peut supprimer définitivement une version. Si votre opération DELETE inclut l'élément versionId, cette version de l'objet est définitivement supprimée et Amazon S3 n'insère pas de marqueur de suppression.

Schéma qui montre comment DELETE versionId supprimer définitivement une version d'objet spécifique.

Vous pouvez renforcer la sécurité en configurant un compartiment pour activer la suppression par authentification multifactorielle (MFA). Lorsque vous activez la MFA suppression pour un compartiment, le propriétaire du compartiment doit inclure deux formes d'authentification dans toute demande de suppression de version ou de modification de l'état de version du compartiment. Pour de plus amples informations, veuillez consulter Configuration de la MFA suppression.

Quand les nouvelles versions sont-elles créées pour un objet ?

Les nouvelles versions sont créées uniquement lorsque vous faites une requête PUT sur un nouvel objet. Sachez que certaines actions, comme CopyObject, fonctionnent en mettant en œuvre une opération PUT.

Certaines actions qui modifient l'objet actuel ne créent pas de nouvelle version, car elles ne font pas de requête PUT sur le nouvel objet. Cela inclut des actions telles que la modification des balises sur un objet.

Important

Si vous remarquez une augmentation significative du nombre de HTTP 503 réponses (service non disponible) reçues pour Amazon S3 PUT ou de demandes d'DELETEobjets adressées à un compartiment sur lequel le versionnage S3 est activé, le compartiment contient peut-être un ou plusieurs objets pour lesquels il existe des millions de versions. Pour plus d'informations, consultez la section sur la gestion des versions S3 de Résolution des problèmes de version.