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 illustrant 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.

L'illustration qui montre que la suppression de la version actuelle d'un objet permet de conserver la version précédente comme 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 le contrôle de version, 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

  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 plus d’informations, consultez Affichage d'une présentation 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 plus d’informations, consultez Utilisation de la gestion des versions dans les compartiments 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}." )