Amazon S3 Gelöschte Datei wiederherstellen


Antworten:


19

Gemäß Die Amazon S3-Dokumentation:

Nach dem Löschen gibt es keine Methode zum Wiederherstellen oder Wiederherstellen eines Objekts.


Leider unterstützt S3 keine Snapshots.
churnd

Um einigen Leuten Hoffnung zu geben, können Sie heutzutage Dateien wiederherstellen, wenn in Ihrem Bucket die Versionsverwaltung aktiviert ist.
jweyrich

wie verdammt ....?
scytale

34

Wenn Sie die Versionierung aktiviert haben, können Sie das! Auf einem versionierten Bucket löscht eine Löschaktion für eine Datei diese nicht wirklich, sondern fügt eine Version mit einem "Delete Marker" hinzu. Sie können die Löschmarkierung mit der AWS-CLI löschen:

aws s3api delete-object --bucket yourbucket-name --key "yourfile" --version-id id_of_the_delete_marker

Sie können alle Dateien in den Eimer mit bekommen

aws --output text s3api list-object-versions --bucket yourbucket-name > files.txt

Wenn Sie alle Dateien im Bucket wiederherstellen möchten, können Sie Folgendes versuchen:

echo '#!/bin/bash' > undeleteScript.sh && aws --output text s3api list-object-versions --bucket yourbucket-name | grep -E "^DELETEMARKERS" | awk '{FS = "[\t]+"; print "aws s3api delete-object --bucket yourbucket-name --key \42"$3"\42 --version-id "$5";"}' >> undeleteScript.sh && . undeleteScript.sh; rm -f undeleteScript.sh;

Ich schätze diese Antwort! Hat einwandfrei funktioniert.
nojak

das hat meinen Abend gerettet. Danke dir!
Von Landfried

Kumpel! Ihr Skript zum Wiederherstellen aller Dateien hat mir das Leben gerettet. Danke dir.
herostwist

Für das obige Skript müssen Sie ein --output=text wenn du willst, dass es funktioniert. Er geht davon aus, dass Sie Ihren AWS-Befehl über eine TXT-Datei und nicht über eine JSON-Datei ausgeben.
Brad Allison

Ich habe das Skript ausprobiert, aber es stellt das Objekt nicht wieder her, sondern löscht es dauerhaft! Kann es sein, weil ich nicht der Besitzer des Eimers bin?
nicola


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.