Restauration d'un objet supprimé
Récupérez un objet supprimé vers un seau de stockage d'objets.
Lorsque le contrôle des versions est activé, la suppression d'un objet sans cibler une version spécifique crée 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 listés ont (Objet supprimé) à côté du nom d'entrée d'objet. Développez la liste des versions de l'objet supprimé et recherchez la version à côté de (Supprimer le marqueur). Restaurez une version d'objet supprimée en supprimant ce marqueur. S'il existe une version précédente, celle-ci devient l'objet actif.
Le contrôle des versions doit être activé pour un seau de stockage d'objets au moment du chargement de l'objet. Les objets supprimés d'un seau dont le contrôle des versions est désactivé ou suspendu 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é dans un seau à 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 du seau. Voir Liste des versions d'objet dans un seau et sélectionnez l'onglet Interface de ligne de commande pour exécuter la commande appropriée.
Dans la sortie, recherchez la version d'objet qui contient
"is-delete-marker": true
.Utilisez la commande oci os object delete et les paramètres requis pour restaurer un objet supprimé dans un seau. Incluez le paramètre
version-id
et sa valeur pour cet objet.Lorsque vous exécutez cette commande, vous êtes invité à confirmer la suppression :oci os object delete --bucket-name bucket_name --object-name object_name --version-id version_id [OPTIONS]
Are you sure you want to delete this resource? [y/N]:
Répondez à
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]: y
Le marqueur de suppression de l'objet est supprimé sans aucune autre information retournée. L'objet est restauré dans son seau. Vous pouvez lister l'objet pour vérifier qu'il a été restauré après avoir supprimé le marqueur de suppression.
Restauration en masse d'un objet supprimé
Pour restaurer plusieurs objets dans un seau en même temps, utilisez les filtres d'interface de ligne de commande OCI disponibles pour interroger l'indicateur
"is-delete-marker": true
. Pour plus d'informations, voir "Utilisation d'interrogations" sous Gestion des entrées et des sorties de l'interface de ligne de commande.Par exemple, pour restaurer un groupe d'objets supprimés, exécutez la commande suivante pour obtenir une liste d'objets avec le marqueur de suppression et l'ID 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 '.[]
Ensuite, dirigez la sortie vers une autre commande ou écrivez un script wrapper pour restaurer les objets supprimés dans le seau. Par exemple, pour restaurer tous les objets d'un seau 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"' argv0
Vous pouvez utiliser le paramètre
--force
pour éviter le mode interactif. Cependant, utilisez cette option avec prudence pour éviter de manquer des informations importantes.Pour la liste complète des paramètres et des valeurs pour les commandes de l'interface de ligne de commande, voir Informations de référence sur les commandes de l'interface de ligne de commande.
Tout d'abord, utilisez l'opération ListObjectVersions pour rechercher des objets avec
"is-delete-marker": true
. Ensuite, utilisez l'opération DeleteObject pour supprimer le marqueur de suppression d'un objet.