

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.

# Récupération de versions d’objets à partir d’un compartiment activé pour la gestion des versions
<a name="RetrievingObjectVersions"></a>

La gestion des versions dans Simple Storage Service (Amazon S3) est un moyen de conserver plusieurs variantes d’un objet dans le même compartiment. Une simple demande `GET` récupère la version actuelle d’un objet. Le schéma suivant montre comment une demande `GET` renvoie la version actuelle de l’objet, `photo.gif`.

![\[Illustration montrant comment GET renvoie la version actuelle de l’objet.\]](http://docs.aws.amazon.com/fr_fr/AmazonS3/latest/userguide/images/versioning_GET_NoVersionID.png)


Pour récupérer une version spécifique, vous devez spécifier son ID de version. Le schéma suivant montre qu’une demande `GET versionId` récupère la version spécifiée de l’objet (pas nécessairement la version actuelle).

![\[Illustration montrant comment une demande GET versionId récupère la version spécifiée de l’objet.\]](http://docs.aws.amazon.com/fr_fr/AmazonS3/latest/userguide/images/versioning_GET_Versioned.png)


Vous pouvez récupérer des versions d'objets dans Amazon S3 à l'aide de la console ou de l'API REST. AWS SDKs

**Note**  
 Pour accéder aux versions d'objets antérieures à 300 versions, vous devez utiliser la AWS CLI ou l'URL de l'objet.

## Utilisation de la console S3
<a name="retrieving-object-versions"></a>

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

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

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

1. Choisissez **Versions**.

   Amazon S3 affiche toutes les versions de l’objet.

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

1. Choisissez **Actions**, choisissez **Télécharger**et 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](view-object-properties.md).

**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](Versioning.md).

## À l'aide du AWS SDKs
<a name="retrieve-obj-version-sdks"></a>

Les exemples de chargement d’objets dans des compartiments non versionnés et activés pour la gestion des versions sont les mêmes. Toutefois, pour les compartiments activés pour la gestion des versions, Simple Storage Service (Amazon S3) attribue un numéro de version. Sinon, le numéro de version est null.

Pour des exemples de téléchargement d'objets à AWS SDKs l'aide de Java, .NET et PHP, consultez la section [Téléchargement d'objets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/download-objects.html).

Pour des exemples de liste des versions d'objets utilisés AWS SDKs pour .NET et Rust, consultez [Répertorier la version des objets dans un compartiment Amazon S3](https://docs.aws.amazon.com/code-library/latest/ug/s3_example_s3_ListObjectVersions_section.html).

## Utilisation de l'API REST
<a name="retrieve-obj-version-rest"></a>

**Pour récupérer une version d’objet spécifique**

1. Configurez la valeur `versionId` sur l’ID de la version de l’objet que vous souhaitez récupérer.

1. Envoyez une demande `GET Object versionId`.

**Example Récupération d’un objet soumis à la gestion des versions**  
La demande suivante récupère la version `L4kqtJlcpXroDTDmpUMLUo` de `my-image.jpg`.  

```
1. GET /my-image.jpg?versionId=L4kqtJlcpXroDTDmpUMLUo HTTP/1.1
2. Host: bucket.s3.amazonaws.com
3. Date: Wed, 28 Oct 2009 22:32:00 GMT
4. Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
```

Seules les métadonnées d’un objet peuvent être récupérées, et pas son contenu. Pour plus d'informations, consultez [Récupération des métadonnées d’une version d’objet](RetMetaOfObjVersion.md).

Pour plus d’informations sur la restauration d’une version d’objet précédente, consultez [Restauration des versions précédentes](RestoringPreviousVersions.md).

# Récupération des métadonnées d’une version d’objet
<a name="RetMetaOfObjVersion"></a>

Si vous souhaitez uniquement récupérer les métadonnées d’un objet (et pas son contenu), vous utilisez l’opération `HEAD`. Par défaut, vous obtenez les métadonnées de la version la plus récente. Pour récupérer les métadonnées d’une version d’objet spécifique, vous spécifiez son ID de version.

**Pour récupérer les métadonnées d’une version d’objet**

1. Configurez la valeur `versionId` sur l’ID de la version de l’objet dont vous souhaitez récupérer les métadonnées.

1. Envoyez une demande `HEAD Object versionId`.

**Example — Récupération des métadonnées d’un objet soumis à la gestion des versions**  
La requête suivante récupère les métadonnées de la version `3HL4kqCxf3vjVBH40Nrjfkd` de `my-image.jpg`.  

```
1. HEAD /my-image.jpg?versionId=3HL4kqCxf3vjVBH40Nrjfkd HTTP/1.1
2. Host: bucket.s3.amazonaws.com
3. Date: Wed, 28 Oct 2009 22:32:00 GMT
4. Authorization: AWS AKIAIOSFODNN7EXAMPLE:0RQf4/cRonhpaBX5sCYVf1bNRuU=
```

Voici un exemple de réponse.

```
 1. HTTP/1.1 200 OK
 2. x-amz-id-2: ef8yU9AS1ed4OpIszj7UDNEHGran
 3. x-amz-request-id: 318BC8BC143432E5
 4. x-amz-version-id: 3HL4kqtJlcpXroDTDmjVBH40Nrjfkd
 5. Date: Wed, 28 Oct 2009 22:32:00 GMT
 6. Last-Modified: Sun, 1 Jan 2006 12:00:00 GMT
 7. ETag: "fba9dede5f27731c9771645a39863328"
 8. Content-Length: 434234
 9. Content-Type: text/plain
10. Connection: close
11. Server: AmazonS3
```

# Restauration des versions précédentes
<a name="RestoringPreviousVersions"></a>

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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/RetrievingObjectVersions.html) et [Chargement d’objets](https://docs.aws.amazon.com/AmazonS3/latest/userguide/upload-objects.html).

![\[Illustration de la copie d’une version spécifique d’un objet dans le même compartiment pour en faire la version actuelle.\]](http://docs.aws.amazon.com/fr_fr/AmazonS3/latest/userguide/images/versioning_COPY2.png)


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](https://docs.aws.amazon.com/AmazonS3/latest/userguide/delete-objects.html).

![\[Illustration montrant comment la suppression de la version actuelle d’un objet laisse la version précédente devenir l’objet actuel.\]](http://docs.aws.amazon.com/fr_fr/AmazonS3/latest/userguide/images/versioning_COPY_delete2.png)


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`](https://docs.aws.amazon.com/AmazonS3/latest/userguide/batch-ops-copy-object.html). 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
<a name="restoring-obj-version-version-enabled-bucket-examples"></a>

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 ?](https://repost.aws/knowledge-center/s3-undelete-configuration) dans le AWS re:Post Knowledge Center.

### Utilisation de la console S3
<a name="retrieving-object-versions"></a>

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

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

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

1. Choisissez **Versions**.

   Amazon S3 affiche toutes les versions de l’objet.

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

1. Choisissez **Actions**, choisissez **Télécharger**et 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](view-object-properties.md).

**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](Versioning.md).

### À l'aide du AWS SDKs
<a name="restoring-obj-version-version-enabled-bucket-sdks"></a>

Pour plus d'informations sur l'utilisation des autres AWS SDKs, consultez le [AWS Developer Center](https://aws.amazon.com/code/). 

------
#### [ 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}."
        )
```

------