Gelöschtes Objekt wiederherstellen
Stellen Sie ein gelöschtes Objekt in einem Object Storage-Bucket wieder her.
Wenn die Versionierung aktiviert ist und Sie ein Objekt löschen, ohne eine bestimmte Version als Ziel zu definieren, wird ein Löschmarker erstellt, und Sie können die vorherige Version des Objekts wiederherstellen. Ein gelöschtes Objekt wird nur in der Liste Objekte angezeigt, wenn das Feature Gelöschtes Objekt anzeigen ausgewählt ist. Alle aufgelisteten gelöschten Objekte haben (Gelöschtes Objekt) neben dem Objekteintragsnamen. Blenden Sie die Versionsliste des gelöschten Objekts ein, und suchen Sie die Version mit (Marker löschen) daneben. Stellen Sie eine gelöschte Objektversion wieder her, indem Sie diesen Löschmarker entfernen. Wenn eine vorherige Version vorhanden ist, wird diese zum Liveobjekt.
Die Versionierung muss für einen Objektspeicher-Bucket beim Hochladen des Objekts aktiviert sein. Objekte, die aus einem Bucket mit deaktivierter oder unterbrochener Versionierung gelöscht wurden, können nicht wiederhergestellt werden.
Die Objektversion, die nach der Version aufgeführt wird, deren Löschmarker Sie entfernt haben, wird zum wiederhergestellten Objekt.
Um ein gelöschtes Objekt in einem Bucket mit der CLI wiederherzustellen, müssen Sie zuerst wissen, welches Objekt zum Löschen markiert ist. Um diese Informationen abzurufen, listen Sie die Objekte im Bucket auf. Siehe Objektversionen in einem Bucket auflisten, und wählen Sie die Registerkarte CLI aus, um den entsprechenden Befehl auszuführen.
Suchen Sie in der Ausgabe die Objektversion mit
"is-delete-marker": true
.Verwenden Sie den Befehl oci os object delete und die erforderlichen Parameter, um ein gelöschtes Objekt in einem Bucket wiederherzustellen. Nehmen Sie den Parameter
version-id
und seinen Wert für dieses Objekt auf.Wenn Sie diesen Befehl ausführen, werden Sie aufgefordert, den Löschvorgang zu bestätigen: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]:
Antworten Sie mit
y
.Beispiel:
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
Der Löschmarker des Objekts wird gelöscht, ohne dass weitere Informationen zurückgegeben werden. Das Objekt wird in seinem Bucket wiederhergestellt. Sie können das Objekt auflisten, um zu prüfen, ob es wiederhergestellt wurde, nachdem Sie den Löschmarker entfernt haben.
Gelöschtes Objekt im Bulkverfahren wiederherstellen
Um mehrere Objekte in einem Bucket gleichzeitig wiederherzustellen, fragen Sie mit den verfügbaren OCI-CLI-Filtern den Indikator
"is-delete-marker": true
ab. Weitere Informationen finden Sie unter "Verwenden von Abfragen" unter CLI-Eingabe und -Ausgabe verwalten.Beispiel: Um eine Gruppe gelöschter Objekte wiederherzustellen, führen Sie den folgenden Befehl aus, um eine Liste der Objekte mit dem Löschmarker und der Versions-ID jedes gelöschten Objekts abzurufen:
oci os object list-object-versions --bucket-name MyBucket --query "data[?\"is-delete-marker\"].{Name:name,version:\"version-id\"}"|jq -r '.[]
Als Nächstes übertragen Sie die Ausgabe per Pipe an einen anderen Befehl oder schreiben ein Wrapper-Skript, um die gelöschten Objekte im Bucket wiederherzustellen. Beispiel: Um alle Objekte in einem Bucket mit dem Löschmarker auf einem Linux-Host wiederherzustellen, führen Sie den folgenden Befehl aus:
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
Mit dem Parameter
--force
können Sie den interaktiven Modus vermeiden. Verwenden Sie diese Option jedoch mit Vorsicht, um zu vermeiden, dass wichtige Informationen fehlen.Eine vollständige Liste der Parameter und Werte für CLI-Befehle finden Sie in der CLI-Befehlsreferenz.
Verwenden Sie zunächst den Vorgang ListObjectVersions, um Objekte mit
"is-delete-marker": true
zu suchen. Verwenden Sie dann den Vorgang DeleteObject, um den Löschmarker aus einem Objekt zu entfernen.