Amazon S3 Odzyskaj usunięty plik

Odpowiedzi:

20

Według dokumentacji Amazon S3:

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

Dave Webb
źródło
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;
Chris Cinelli
źródło
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
3

Właśnie aktualizowałem to pytanie, gdy szukałem odpowiedzi:

Możesz teraz dodać WERSJĘ do wiader S3. Spowoduje to, że S3 zachowa wersje obiektu nawet po usunięciu. Pełna dokumentacja: http://docs.amazonwebservices.com/AmazonS3/latest/dev/Versioning.html

dineth
źródło
Czy można odzyskać usunięty plik za pomocą konsoli AWS? Nie mogę znaleźć sposobu, aby to zrobić.
Rafael Oliveira