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
Les rubriques suivantes peuvent vous aider à résoudre des problèmes courants de gestion des versions sur Amazon S3.
Je souhaite récupérer des objets qui ont été supprimés accidentellement dans un compartiment avec la gestion des versions.
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 :
Connectez-vous à la console Amazon S3 AWS Management Console et ouvrez-la à l'adresse https://console.aws.amazon.com/s3/
. -
Dans le panneau de navigation de gauche, choisissez Compartiments.
-
Dans la liste Compartiments, choisissez le nom du compartiment qui contient l’objet.
-
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.
-
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 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
par vos propres informations : user input
placeholders
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.
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
par vos propres informations : user input placeholders
aws s3api delete-object --bucket
amzn-s3-demo-bucket
--key
index.html
--version-id
versionID
Pour plus d'informations sur la delete-object
commande, voir delete-objectdans la référence de AWS CLI commande. Pour plus d’informations sur la suppression permanente de marqueurs de suppression, consultez Gestion des marqueurs de suppression.
Je souhaite supprimer définitivement les objets avec la gestion des versions
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 Number of newer versions to retain (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 (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 (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 (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’objets S3.
Je constate une dégradation des performances après avoir activé la gestion des versions sur les compartiments
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 l’inventaire S3.
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.
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 (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é.
Pour en savoir plus sur les bonnes pratiques d’optimisation des performances d’Amazon S3, consultez Schémas de conception des bonnes pratiques.