Amazon S3 Odzyskaj usunięty plik


Odpowiedzi:


20

Według dokumentacji Amazon S3:

Po usunięciu nie ma metody przywracania lub przywracania obiektu.


To niefortunne, że S3 nie obsługuje migawek.
churnd

1
Aby dać nadzieję niektórym ludziom, w dzisiejszych czasach możesz cofnąć usuwanie plików, jeśli wiadro ma włączoną kontrolę wersji.
jweyrich

jak cholera ....?
scytale,

43

Jeśli masz włączoną kontrolę wersji, tak, możesz! W wersjonowanym segmencie operacja usuwania pliku tak naprawdę go nie usuwa, ale dodaje wersję z „Usuń znacznik”. Możesz usunąć znacznik usuwania za pomocą interfejsu AWS CLI:

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

Możesz pobrać wszystkie pliki do wiadra za pomocą

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

Jeśli chcesz cofnąć usunięcie wszystkich plików w wiadrze, możesz spróbować:

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;

Doceniam tę odpowiedź! Działa bezbłędnie.
tacot wtorek

koleś! Twój skrypt usuwania wszystkich plików uratował mi życie. Dziękuję Ci.
herostwist

Do powyższego skryptu musisz dodać, --output=textjeśli chcesz, aby działał. Zakłada, że ​​wypisujesz swoje polecenie AWS przez plik .txt, a nie plik .JSON.
Brad Allison,

Próbowałem skryptu, ale nie przywraca obiektu, usuwa go na stałe! Czy to możliwe, ponieważ nie jestem właścicielem wiadra?
nicola

1
Dlaczego nie jest to akceptowana odpowiedź? @vonhogen proszę ponownie rozważyć swój wybór :)
Janaka Bandara


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.