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. Pendant que cette modification se propage, il est possible que vous rencontriez des erreurs HTTP 404 NoSuchKey intermittentes pour les demandes adressées aux objets créés ou mis à jour après l’activation de la gestion des versions. 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 a créé le bucket. Pour plus d’informations sur les autorisations, consultez Gestion des identités et des accès pour Amazon S3.

Pour plus d'informations sur l'activation et la désactivation de la gestion des versions S3 à l'aide de l'API AWS Management Console, AWS Command Line Interface (AWS CLI) ou REST, 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érente IDs, par exemple photo.gif (version 111111) et photo.gif (version 121212).

Schéma illustrant un compartiment activé pour la gestion des versions contenant 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. IDs Les versions sont des chaînes opaques Unicode, codées en UTF-8, prêtes pour les URL, 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 courts IDs.

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 de 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 d’un utilisateur IAM autorisé peut supprimer une version de manière définitive. 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 supprime définitivement une version d’objet spécifique.

Vous pouvez ajouter une sécurité supplémentaire en configurant un compartiment pour activer la suppression par authentification multifactorielle (MFA). Quand vous activez la suppression MFA pour un compartiment, le propriétaire du compartiment doit inclure deux formes d’authentification pour toute demande de suppression d’une version ou de changement de l’état de la gestion des versions du compartiment. Pour plus d’informations, consultez Configuration de la fonction Supprimer MFA.

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 importante du nombre de réponses HTTP 503 (Service indisponible) reçues pour les requêtes d’objet PUT ou DELETE Amazon S3 concernant un compartiment pour lequel la gestion des versions S3 est activée, il est possible qu’il y ait un ou plusieurs objets du compartiment avec des millions de versions. Pour plus d’informations, consultez la section sur la gestion des versions S3 de Résolution des problèmes de gestion des versions.