

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ésolution des problèmes de gestion des versions
<a name="troubleshooting-versioning"></a>

Les rubriques suivantes peuvent vous aider à résoudre des problèmes courants de gestion des versions sur Amazon S3.

**Topics**
+ [Je souhaite récupérer des objets qui ont été supprimés accidentellement dans un compartiment avec la gestion des versions.](#recover-objects)
+ [Je souhaite supprimer définitivement les objets avec la gestion des versions](#delete-objects-permanent)
+ [Je constate une dégradation des performances après avoir activé la gestion des versions sur les compartiments](#performance-degradation)

## Je souhaite récupérer des objets qui ont été supprimés accidentellement dans un compartiment avec la gestion des versions.
<a name="recover-objects"></a>

En général, lorsque des versions d’objets sont supprimées des compartiments S3, Amazon S3 n’a aucun moyen de les récupérer. Toutefois, si vous avez activé la gestion des versions S3 sur votre compartiment S3, une demande `DELETE` qui ne spécifie pas d’ID de version ne peut pas supprimer définitivement un objet. Au lieu de cela, un marqueur de suppression est ajouté en tant qu’espace réservé. Ce marqueur de suppression devient la version actuelle de l’objet. 

Pour vérifier si vos objets supprimés sont définitivement ou temporairement supprimés (avec un marqueur de suppression à leur place), procédez comme suit : 

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 le panneau de navigation de gauche, choisissez **Compartiments**.

1. Dans la liste **Compartiments**, choisissez le nom du compartiment qui contient l’objet.

1. Dans la liste **Objets**, activez le bouton **Afficher les versions** à droite de la barre de recherche, puis recherchez l’objet supprimé dans la barre de recherche. Cette option n’est disponible que si la gestion des versions a précédemment été activée sur le compartiment.

   Vous pouvez également utiliser [S3 Inventory pour rechercher des objets supprimés](storage-inventory.md#storage-inventory-contents).

1. Si vous ne trouvez pas l’objet après avoir activé l’option **Afficher les versions** ou créé un rapport d’inventaire, et que vous ne trouvez pas non plus de [marqueur de suppression](DeleteMarker.md) de l’objet, la suppression est définitive et l’objet ne peut pas être récupéré.



Vous pouvez également vérifier le statut d'un objet supprimé à l'aide de l'opération `HeadObject` API depuis le AWS Command Line Interface (AWS CLI). Pour ce faire, utilisez la commande `head-object` suivante et remplacez `{{user input placeholders}}` par vos propres informations : 

`aws s3api head-object --bucket {{amzn-s3-demo-bucket}} --key {{index.html}}`

Si vous exécutez la commande `head-object` sur un objet avec la gestion des versions dont la version actuelle est un marqueur de suppression, vous recevrez une erreur 404 Introuvable. Par exemple : 

Une erreur s'est produite (404) lors de l'appel de l' HeadObject opération : Introuvable

Si vous exécutez la commande `head-object` sur un objet avec la gestion des versions et que vous fournissez l’ID de version de l’objet, Amazon S3 récupère les métadonnées de l’objet, confirmant ainsi que l’objet existe toujours et qu’il n’est pas supprimé définitivement.

`aws s3api head-object --bucket {{amzn-s3-demo-bucket}} --key {{index.html}} --version-id {{versionID}}`

```
{
"AcceptRanges": "bytes",
"ContentType": "text/html",
"LastModified": "Thu, 16 Apr 2015 18:19:14 GMT",
"ContentLength": 77,
"VersionId": "Zg5HyL7m.eZU9iM7AVlJkrqAiE.0UG4q",
"ETag": "\"30a6ec7e1a9ad79c203d05a589c8b400\"",
"Metadata": {}
}
```

Si l’objet est trouvé et que la version la plus récente est un marqueur de suppression, la version précédente de l’objet existe toujours. Le marqueur de suppression étant la version actuelle de l’objet, vous pouvez récupérer l’objet en supprimant le marqueur de suppression. 

Une fois que vous avez supprimé définitivement le marqueur de suppression, la deuxième version la plus récente de l’objet devient la version actuelle de l’objet, ce qui rend votre objet à nouveau disponible. Pour une représentation visuelle de la façon dont les objets sont récupérés, consultez [Suppression des marqueurs de suppression](ManagingDelMarkers.md#RemDelMarker).

Pour supprimer une version spécifique d’un objet, vous devez être le propriétaire du compartiment. Pour supprimer un marqueur de suppression définitivement, vous devez inclure son ID de version dans une demande `DeleteObject`. Pour supprimer le marqueur de suppression, utilisez la commande suivante et remplacez `{{user input placeholders}}` par vos propres informations : 

****  
`aws s3api delete-object --bucket {{amzn-s3-demo-bucket}} --key {{index.html}} --version-id {{versionID}}`

Pour plus d’informations sur la commande `delete-object`, consultez [https://docs.aws.amazon.com//cli/latest/reference/s3api/delete-object.html](https://docs.aws.amazon.com//cli/latest/reference/s3api/delete-object.html) dans la *Référence des commandes de l’AWS CLI *. Pour plus d’informations sur la suppression permanente de marqueurs de suppression, consultez [Gestion des marqueurs de suppression](ManagingDelMarkers.md).

## Je souhaite supprimer définitivement les objets avec la gestion des versions
<a name="delete-objects-permanent"></a>

Dans un compartiment avec la gestion des versions, une demande `DELETE` sans ID de version ne peut pas supprimer de façon permanente un objet. Au lieu de cela, une telle demande insère un marqueur de suppression.

Pour supprimer définitivement des objets avec la gestion des versions, vous pouvez choisir l’une des méthodes suivantes :
+ Créez une règle de cycle de vie S3 pour supprimer définitivement les anciennes versions. Pour supprimer définitivement les versions anciennes d’objets, sous **Supprimer définitivement les anciennes versions des objets**, dans **Jours après lesquels les objets deviennent anciens**, saisissez le nombre de jours. Vous pouvez éventuellement spécifier le nombre de versions plus récentes à conserver en saisissant une valeur sous **Nombre de versions plus récentes à conserver**. Pour plus d’informations sur la création de cette règle, consultez [Setting an S3 Lifecycle configuration](how-to-set-lifecycle-configuration-intro.md) (Définition d’une configuration du cycle de vie S3).
+ Supprimez une version spécifiée en incluant l’ID de version dans la demande `DELETE`. Pour plus d’informations, consultez [How to delete versioned objects permanently](DeletingObjectVersions.md#delete-request-use-cases) (Comment supprimer des objets avec la gestion des versions de façon permanente).
+ Créez une règle de cycle de vie pour faire expirer les versions actuelles. Pour faire expirer les versions actuelles des objets, sous **Expirer les versions actuelles d’objets**, dans **Jours après la création de l’objet**, saisissez le nombre de jours. Pour plus d’informations sur la création de cette règle de cycle de vie, consultez [Setting an S3 Lifecycle configuration](how-to-set-lifecycle-configuration-intro.md) (Définition d’une configuration du cycle de vie S3).
+ Pour supprimer définitivement tous les objets avec la gestion des versions et supprimer les marqueurs, créez deux règles de cycle de vie : l’une pour faire expirer les versions actuelles et supprimer définitivement les versions anciennes des objets, et l’autre pour supprimer les marqueurs de suppression d’objets expirés.

Dans un compartiment avec la gestion des versions, une demande `DELETE` qui ne spécifie pas d’ID de version ne peut supprimer que les objets dotés d’un identifiant de version `NULL`. Si l’objet a été chargé lorsque la gestion des versions était activée, une demande `DELETE` qui ne spécifie pas d’ID de version crée un marqueur de suppression de cet objet.

**Note**  
Pour les compartiments avec le verrouillage des objets S3, une demande d’objet `DELETE` avec un ID de version d’objet protégé provoque une erreur 403 Accès refusé. Une demande d’objet `DELETE` sans ID de version ajoute un marqueur de suppression en tant que version la plus récente de l’objet avec une réponse 200 OK. Les objets protégés par le verrouillage des objets ne peuvent pas être supprimés définitivement tant que leurs périodes de rétention et leurs conservations légales ne sont pas levées. Pour plus d’informations, consultez [Fonctionnement du verrouillage d’objet S3](object-lock.md#object-lock-overview).

## Je constate une dégradation des performances après avoir activé la gestion des versions sur les compartiments
<a name="performance-degradation"></a>

Une dégradation des performances peut se produire sur les compartiments avec la gestion des versions s’il y a trop de marqueurs de suppression ou d’objets avec la gestion des versions et si les meilleures pratiques ne sont pas suivies.

**Marqueurs de suppression trop nombreux**  
Après avoir activé la gestion des versions sur un compartiment, une demande `DELETE` faite à un objet sans ID de version crée un marqueur de suppression avec un ID de version unique. Les configurations de cycle de vie avec une règle **Expirer les versions actuelles d’objets** ajoutent un marqueur de suppression avec un ID de version unique à chaque objet. Un nombre excessif de marqueurs de suppression peut réduire les performances du compartiment.

Lorsque la gestion des versions est suspendue sur un compartiment, Amazon S3 marque l’ID de version comme `NULL` sur les nouveaux objets créés. Dans un compartiment avec la gestion des versions suspendue, l’action d’expiration entraîne la création par Amazon S3 d’un marqueur de suppression avec l’ID de version `NULL`. Dans un compartiment avec la gestion des versions suspendue, un marqueur de suppression `NULL` est créé pour chaque demande de suppression. Ces marqueurs de suppression `NULL` sont également appelés marqueurs de suppression d’objet expiré lorsque toutes les versions d’objet sont supprimées et qu’il ne reste qu’un seul marqueur de suppression. Si trop de marqueurs de suppression `NULL` s’accumulent, les performances du compartiment se dégradent.

**Objets avec la gestion des versions trop nombreux**  
Si un compartiment avec la gestion des versions contient des objets contenant des millions de versions, le nombre d’erreurs 503 Service indisponible peut augmenter. Si vous remarquez une augmentation importante du nombre de réponses HTTP 503 Service indisponible reçues pour des demandes d’objet `PUT` ou `DELETE` vers un compartiment avec la gestion des versions, il est possible qu’un ou plusieurs objets du compartiment aient des millions de versions. Lorsque vous avez des objets avec des millions de versions, Amazon S3 limite automatiquement les demandes vers le compartiment. La limitation des demandes protège votre compartiment d’une quantité excessive de trafic de demandes qui pourrait potentiellement gêner d’autres demandes effectuées auprès du même compartiment. 

Pour déterminer quels objets ont des millions de versions, utilisez S3 Inventory. S3 Inventory génère un rapport qui fournit une liste de fichiers plats des objets d’un compartiment. Pour plus d’informations, consultez [Catalogage et analyse de vos données avec S3 Inventory](storage-inventory.md).

Pour vérifier si le compartiment contient un nombre élevé d’objets avec la gestion des versions, utilisez les métriques de S3 Storage Lens pour afficher **Nombre d’objets de version actuelle** **Nombre d’objets de version ancienne** et **Nombre d’objets marqueur de suppression**. Pour plus d’informations sur les métriques de Storage Lens, consultez [Glossaire des métriques Amazon S3 Storage Lens](storage_lens_metrics_glossary.md).

L’équipe Amazon S3 encourage les clients à examiner les applications qui remplacent souvent le même objet et créent potentiellement des millions de versions de cet objet, afin de déterminer si l’application fonctionne comme prévu. Par exemple, une application qui remplace le même objet toutes les minutes pendant une semaine peut créer plus de dix mille versions. Nous recommandons de stocker moins de cent mille versions pour chaque objet. Si votre cas d'utilisation nécessite des millions de versions pour un ou plusieurs objets, contactez l' AWS Support équipe pour obtenir de l'aide afin de déterminer la meilleure solution.

**Bonnes pratiques**  
Pour éviter les problèmes de dégradation des performances liés à la gestion des versions, nous vous recommandons de suivre les bonnes pratiques suivantes :
+ Activez une règle de cycle de vie pour faire expirer les anciennes versions des objets. Par exemple, vous pouvez créer une règle de cycle de vie pour faire expirer les versions anciennes 30 jours après la fin de la période d’inactivité de l’objet. Vous pouvez également conserver plusieurs anciennes versions si vous ne souhaitez pas toutes les supprimer. Pour plus d’informations, consultez [Setting an S3 Lifecycle configuration](how-to-set-lifecycle-configuration-intro.md) (Définition d’une configuration du cycle de vie S3).
+ Activez une règle de cycle de vie pour supprimer les marqueurs de suppression d’objets expirés auxquels aucun objet de données n’est associé dans le compartiment. Pour plus d’informations, consultez [Suppression des marqueurs de suppression d’objet expiré](lifecycle-configuration-examples.md#lifecycle-config-conceptual-ex7).

Pour en savoir plus sur les bonnes pratiques d’optimisation des performances d’Amazon S3, consultez [Schémas de conception des bonnes pratiques](optimizing-performance.md).