Amazon S3 Memulihkan file yang dihapus

20

Apakah mungkin untuk memulihkan file yang saya hapus dari bucket S3 saya?

vonhogen
sumber

Jawaban:

20

Menurut Dokumentasi Amazon S3:

Setelah dihapus, tidak ada metode untuk mengembalikan atau membatalkan penghapusan suatu objek.

Dave Webb
sumber
Sayangnya S3 tidak mendukung snapshot.
churnd
1
Untuk memberi harapan kepada beberapa orang, saat ini Anda dapat membatalkan penghapusan file jika versi bucket Anda diaktifkan.
jweyrich
bagaimana sial ....?
scytale
43

Jika Anda mengaktifkan versi, ya Anda bisa! Pada bucket berversi, tindakan hapus pada file tidak benar-benar menghapusnya tetapi ia menambahkan versi dengan "Hapus Penanda". Anda dapat menghapus penanda penghapusan dengan AWS CLI:

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

Anda bisa mendapatkan semua file dalam ember

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

Jika Anda ingin membatalkan penghapusan semua file dalam ember, Anda dapat mencoba:

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
sumber
Saya menghargai jawaban ini! Bekerja dengan sempurna.
tacotuesday
kawan! hapus semua skrip file Anda baru saja menyelamatkan hidup saya. Terima kasih.
herostwist
Untuk skrip di atas, Anda perlu menambahkan --output=textjika Anda ingin itu berfungsi. Dia menganggap Anda mengeluarkan perintah AWS Anda melalui file .txt dan bukan file .JSON.
Brad Allison
Saya sudah mencoba skrip tetapi tidak mengembalikan objek, menghapusnya secara permanen! Mungkin karena aku bukan pemilik ember?
nicola
1
Mengapa ini bukan jawaban yang diterima? @vonhogen harap pertimbangkan kembali pilihan Anda :)
Janaka Bandara
3

Hanya memperbarui pertanyaan ini karena saya mencari jawabannya:

Anda dapat menambahkan VERSIONING ke bucket S3 sekarang. Ini akan menyebabkan S3 menyimpan versi suatu objek bahkan setelah penghapusan. Dokumentasi lengkap: http://docs.amazonwebservices.com/AmazonS3/latest/dev/Versioning.html

makan malam
sumber
Apakah mungkin untuk mengambil file yang dihapus melalui AWS Console? Tidak dapat menemukan cara untuk melakukan itu.
Rafael Oliveira