Restauration d'un objet supprimé
Récupérez un objet supprimé vers un bucket Object Storage.
Lorsque l'application des versions est activée, la suppression d'un objet sans cible de version spécifique entraîne la génération d'un marqueur de suppression et vous pouvez récupérer la version précédente de l'objet. Un objet supprimé apparaît uniquement dans la liste Objets lorsque la fonction Afficher l'objet supprimé est sélectionnée. Tous les objets supprimés répertoriés ont (Objet supprimé) en regard du nom de l'entrée d'objet. Développez la liste des versions de l'objet supprimé et recherchez la version avec (Supprimer le marqueur) en regard. Restaurez une version d'objet supprimée en supprimant ce marqueur de suppression. Si une version précédente existe, cette version devient l'objet actif.
La gestion des versions doit être activée pour un bucket Object Storage au moment du téléchargement de l'objet. Les objets supprimés d'un bucket avec la gestion des versions désactivée ou suspendue ne peuvent pas être récupérés.
La version d'objet répertoriée après celle dont vous avez supprimé le marqueur de suppression devient l'objet restauré. Pour restaurer un objet supprimé d'un bucket à l'aide de l'interface de ligne de commande, vous devez d'abord savoir quel objet est marqué pour suppression. Pour obtenir ces informations, répertoriez les objets dans le bucket. Reportez-vous à Liste des versions d'objet dans un bucket et sélectionnez l'onglet CLI pour exécuter la commande appropriée.
Dans la sortie, recherchez la version d'objet contenant
"is-delete-marker": true.Utilisez la commande oci os object delete et les paramètres requis pour restaurer un objet supprimé dans un bucket. Incluez le paramètre
version-idet sa valeur pour cet objet.oci os object delete --bucket-name bucket_name --object-name object_name --version-id version_id [OPTIONS]Lorsque vous exécutez cette commande, vous êtes invité à confirmer la suppression :
Are you sure you want to delete this resource? [y/N]:Réponse avec
y.Par exemple :
oci os object delete --bucket-name MyBucket --name MyFile.txt --version-id 2a0021a1-2a2f-41a0-a199-454003f84aa0 Are you sure you want to delete this resource? [y/N]: yLe marqueur de suppression de l'objet est supprimé sans autre information renvoyée. L'objet est restauré dans son bucket. Vous pouvez répertorier l'objet pour vérifier qu'il a été restauré après la suppression du marqueur de suppression.
Pour obtenir la liste complète des paramètres et des valeurs des commandes de la CLI, reportez-vous à Référence des commandes de la CLI.
Restauration en masse de l'objet supprimé
Pour restaurer plusieurs objets dans un bucket en même temps, utilisez les filtres d'interface de ligne de commande OCI disponibles afin d'interroger l'indicateur
"is-delete-marker": true. Pour plus d'informations, reportez-vous à la section "Utilisation des requêtes" sous Gestion de l'entrée et de la sortie de la CLI.Par exemple, pour restaurer un groupe d'objets supprimés, exécutez la commande suivante pour obtenir la liste des objets avec le marqueur de suppression et l'ID de version de chaque objet supprimé :
oci os object list-object-versions --bucket-name MyBucket --query "data[?\"is-delete-marker\"].{Name:name,version:\"version-id\"}"|jq -r '.[]Transmettez ensuite la sortie à une autre commande ou écrivez un script wrapper pour restaurer les objets supprimés dans le bucket. Par exemple, pour restaurer tous les objets d'un bucket avec le marqueur de suppression sur un hôte Linux, exécutez la commande suivante :
oci os object list-object-versions --bucket-name MyBucket --query "data[?\"is-delete-marker\"].{Name:name,version:\"version-id\"}"|jq -r '.[] | join(" ")'| xargs -n 2 sh -c 'oci os object delete --namespace MyNamespace --bucket-name MyBucket --object-name "$1" --version-id "$2"' argv0Vous pouvez utiliser le paramètre
--forcepour éviter le mode interactif. Cependant, utilisez cette option avec prudence pour éviter de manquer toute information importante.Tout d'abord, utilisez l'opération ListObjectVersions pour rechercher des objets avec
"is-delete-marker": true. Utilisez ensuite l'opération DeleteObject pour enlever le marqueur de suppression d'un objet.