

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.

# Gestion des marqueurs de suppression
<a name="ManagingDelMarkers"></a>

## Configuration du cycle de vie pour nettoyer automatiquement les marqueurs de suppression expirés
<a name="LifecycleDelMarker"></a>

Un marqueur de suppression d’objet expiré est un marqueur dans lequel toutes les versions d’objet sont supprimées et où il ne reste qu’un seul marqueur de suppression. Si la configuration de cycle de vie est définie pour supprimer les versions actuelles, ou si l’action `ExpiredObjectDeleteMarker` est explicitement définie, Amazon S3 supprime le marqueur de suppression de l’objet expiré. Pour obtenir un exemple, consultez [Suppression des marqueurs de suppression des objets expirés dans un compartiment avec gestion des versions](lifecycle-configuration-examples.md#lifecycle-config-conceptual-ex7). 

## Suppression des marqueurs de suppression pour rendre une version plus ancienne à jour
<a name="RemDelMarker"></a>

Lorsque vous supprimez un objet d’un compartiment activé pour la gestion des versions, toutes les versions restent dans le compartiment et Simple Storage Service (Amazon S3) crée un marqueur de suppression pour l’objet. Pour annuler la suppression de l’objet, vous devez supprimer ce marqueur de suppression. Pour plus d’informations sur la gestion des versions et les marqueurs de suppression, consultez [Conservation de plusieurs versions d’objets grâce à la gestion des versions S3](Versioning.md).

Pour supprimer un marqueur de suppression définitivement, vous devez inclure son ID de version dans une demande `DeleteObject versionId`. Le schéma suivant montre comment une demande `DeleteObject versionId` supprime définitivement un marqueur de suppression.

![Illustration de la suppression d’un marqueur de suppression à l’aide de son ID de version.](http://docs.aws.amazon.com/fr_fr/AmazonS3/latest/userguide/images/versioning_DELETE_deleteMarkerVersioned.png)


Suite à la suppression du marqueur de suppression, une simple demande `GET` récupère désormais l’ID de version actuelle (121212) de l’objet. 

**Note**  
Si vous utilisez une demande `DeleteObject` où la version actuelle est un marqueur de suppression (sans spécifier l’ID de version du marqueur de suppression), Amazon S3 ne supprime pas le marqueur de suppression, mais à la place, `PUTs` un autre marqueur de suppression.

Pour supprimer un marqueur de suppression avec un ID de version `NULL`, vous devez transmettre l’ID de version `NULL` comme ID de version dans la demande `DeleteObject`. La figure suivante illustre comment un demande `DeleteObject` adressée sans ID de version, où la version actuelle est un marqueur de suppression, ne supprime rien, mais ajoute à la place un marqueur de suppression supplémentaire avec un ID de version unique (7498372).

![Illustration de la suppression d’un marqueur de suppression à l’aide d’un ID de version NULL.](http://docs.aws.amazon.com/fr_fr/AmazonS3/latest/userguide/images/versioning_DELETE_deleteMarker.png)


## Utilisation de la console S3
<a name="undelete-objects"></a>

Suivez ces étapes pour récupérer des objets supprimés qui ne sont pas des dossiers de votre compartiment S3, y compris les objets qui se trouvent dans ces dossiers. 

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 que vous souhaitez.

1. Pour afficher la liste des **versions** des objets du compartiment, choisissez le commutateur **Répertorier les versions**. Vous pourrez voir les marqueurs de suppression pour les objets supprimés. 

   

1. Pour annuler la suppression d’un objet, vous devez supprimer le marqueur de suppression. Cochez la case en regard du **marqueur de suppression** de l’objet à récupérer, puis choisissez **Delete (Supprimer)**.

1. Confirmez la suppression sur la page **Delete objects (Supprimer les objets)**.

   1. Pour **Permanently delete objects?** (Supprimer définitivement des objets ?), saisissez **permanently delete**.

   1. Choisissez **Supprimer les objets**.

**Note**  
Vous ne pouvez pas utiliser la console Amazon S3 pour restaurer des dossiers. Vous devez utiliser le AWS CLI ou le SDK. Pour des exemples, consultez [Comment récupérer un objet Simple Storage Service (Amazon S3) supprimé d’un compartiment activé pour la gestion des versions ?](https://aws.amazon.com/premiumsupport/knowledge-center/s3-undelete-configuration/) dans le Centre de connaissances  AWS .

## Utilisation de l'API REST
<a name="delete-marker-rest-api"></a>

**Pour supprimer définitivement un marqueur de suppression**

1. Configurez la valeur `versionId` sur l’ID de la version du marqueur de suppression que vous souhaitez supprimer.

1. Envoyez une demande `DELETE Object versionId`.

**Example — Suppression d’un marqueur de suppression**  
L’exemple suivant supprime le marqueur de suppression pour la version 4857693 `photo.gif`.  

```
1. DELETE /photo.gif?versionId=4857693 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=
```

Lorsque vous supprimez un marqueur de suppression, Amazon S3 inclut les éléments suivants dans la réponse.

```
1. 204 NoContent 
2. x-amz-version-id: {{versionID}} 
3. x-amz-delete-marker: true
```

## À l'aide du AWS SDKs
<a name="remove-delete-marker-examples-sdk"></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 montre comment supprimer un marqueur de suppression d’un objet et transformer ainsi la version ancienne la plus récente en la version actuelle de l’objet.

```
def revive_object(bucket, object_key):
    """
    Revives a versioned object that was deleted by removing the object's active
    delete marker.
    A versioned object presents as deleted when its latest version is a delete marker.
    By removing the delete marker, we make the previous version the latest version
    and the object then presents as *not* deleted.

    Usage is shown in the usage_demo_single_object function at the end of this module.

    :param bucket: The bucket that contains the object.
    :param object_key: The object to revive.
    """
    # Get the latest version for the object.
    response = s3.meta.client.list_object_versions(
        Bucket=bucket.name, Prefix=object_key, MaxKeys=1
    )

    if "DeleteMarkers" in response:
        latest_version = response["DeleteMarkers"][0]
        if latest_version["IsLatest"]:
            logger.info(
                "Object %s was indeed deleted on %s. Let's revive it.",
                object_key,
                latest_version["LastModified"],
            )
            obj = bucket.Object(object_key)
            obj.Version(latest_version["VersionId"]).delete()
            logger.info(
                "Revived %s, active version is now %s  with body '%s'",
                object_key,
                obj.version_id,
                obj.get()["Body"].read(),
            )
        else:
            logger.warning(
                "Delete marker is not the latest version for %s!", object_key
            )
    elif "Versions" in response:
        logger.warning("Got an active version for %s, nothing to do.", object_key)
    else:
        logger.error("Couldn't get any version info for %s.", object_key)
```

------