Restauration des versions précédentes - 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.

Restauration des versions précédentes

Vous pouvez utiliser la gestion des versions pour récupérer les versions précédentes d’un objet. Pour ce faire, deux approches sont possibles :

  • La copie d’une version précédente de l’objet dans le même compartiment.

    L’objet copié devient la version actuelle de cet objet et toutes les versions d’objet sont préservées.

  • La suppression définitive de la version actuelle de l’objet.

    Lorsque vous supprimez la version d’objet actuelle, vous transformez la version précédente en version actuelle de cet objet.

Etant donné que toutes les versions d’objet sont préservées, vous pouvez réaliser une version antérieure à la version actuelle en copiant une version spécifique de l’objet dans le même compartiment. Dans le schéma suivant, l’objet source (ID = 111111) est copié dans le même compartiment. Amazon S3 fournit un nouvel ID (88778877) qui devient la version actuelle de l’objet. Le compartiment possède donc la version d’objet originale (111111) et sa copie (88778877). Pour plus d’informations sur l’obtention d’une version précédente, puis son chargement pour en faire la version actuelle, consultez Récupération des versions d’objets à partir d’un compartiment activé pour la gestion des versions et Chargement d’objets.

Illustration de la copie d’une version spécifique d’un objet dans le même compartiment pour en faire la version actuelle.

Une version ultérieure GET récupère la version 88778877.

Le schéma suivant illustre comment la suppression de la version actuelle (121212) d’un objet permet à la version précédente (111111) de devenir l’objet actuel. Pour plus d’informations sur la suppression d’un objet, consultez Suppression d’un objet unique.

Illustration montrant comment la suppression de la version actuelle d’un objet laisse la version précédente devenir l’objet actuel.

Une version ultérieure GET récupère la version 111111.

Note

Pour restaurer des versions d’objets par lots, vous pouvez utiliser l’opération CopyObject. L’opération CopyObject copie chaque objet spécifié dans le manifeste. Cependant, sachez que les objets ne sont pas nécessairement copiés dans le même ordre que celui dans lequel ils apparaissent dans le manifeste. Pour les compartiments activés pour la gestion des versions, si la préservation de l’ordre des versions actuelles ou anciennes est importante, vous devez d’abord copier toutes les anciennes versions. Ensuite, une fois la première tâche terminée, copiez les versions actuelles dans une tâche ultérieure.

Pour restaurer les versions d’objets précédentes

Pour plus d'informations sur la restauration d'objets supprimés, consultez Comment puis-je récupérer un objet Amazon S3 qui a été supprimé dans un compartiment activé pour la gestion des versions ? dans le AWS re:Post Knowledge Center.

  1. Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/s3/.

  2. Dans la liste Buckets (Compartiments), choisissez le nom du compartiment qui contient l'objet.

  3. Dans la liste Objets, choisissez le nom de l’objet.

  4. Choisissez Versions.

    Amazon S3 affiche toutes les versions de l’objet.

  5. Sélectionnez la case à cocher en regard de l’ID de version des versions que vous souhaitez récupérer.

  6. Choisissez Actions, choisissez Téléchargeret enregistrez l’objet.

Vous pouvez également afficher, télécharger et supprimer les versions d’un objet dans le panneau de présentation de l’objet. Pour de plus amples informations, veuillez consulter Affichage des propriétés d’un objet dans la console Amazon S3.

Important

Vous pouvez annuler la suppression d'un objet uniquement si celui-ci a été supprimé en tant que version la plus récente (version actuelle). Vous ne pouvez pas restaurer une version précédente d’un objet supprimé. Pour de plus amples informations, veuillez consulter Conservation de plusieurs versions d’objets grâce à la gestion des versions S3.

Pour plus d'informations sur l'utilisation des autres AWS SDKs, consultez le AWS Developer Center.

Python

L’exemple de code Python suivant restaure la version précédente d’un objet versionné en supprimant toutes les versions qui sont apparues après la version de restauration spécifiée.

def rollback_object(bucket, object_key, version_id): """ Rolls back an object to an earlier version by deleting all versions that occurred after the specified rollback version. Usage is shown in the usage_demo_single_object function at the end of this module. :param bucket: The bucket that holds the object to roll back. :param object_key: The object to roll back. :param version_id: The version ID to roll back to. """ # Versions must be sorted by last_modified date because delete markers are # at the end of the list even when they are interspersed in time. versions = sorted( bucket.object_versions.filter(Prefix=object_key), key=attrgetter("last_modified"), reverse=True, ) logger.debug( "Got versions:\n%s", "\n".join( [ f"\t{version.version_id}, last modified {version.last_modified}" for version in versions ] ), ) if version_id in [ver.version_id for ver in versions]: print(f"Rolling back to version {version_id}") for version in versions: if version.version_id != version_id: version.delete() print(f"Deleted version {version.version_id}") else: break print(f"Active version is now {bucket.Object(object_key).version_id}") else: raise KeyError( f"{version_id} was not found in the list of versions for " f"{object_key}." )