Jawaban:
Menurut Dokumentasi Amazon S3:
Setelah dihapus, tidak ada metode untuk mengembalikan atau membatalkan penghapusan suatu objek.
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;
--output=text
jika Anda ingin itu berfungsi. Dia menganggap Anda mengeluarkan perintah AWS Anda melalui file .txt dan bukan file .JSON.
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
Anda sekarang dapat mendaftar versi objek menggunakan konsol AWS: http://docs.aws.amazon.com/AmazonS3/latest/UG/managing-objects-versioned-bucket.html
Jika Anda memiliki izin yang tepat, maka Anda dapat menghapus penanda penghapusan (versi terbaru dari objek yang dihapus) dan hasilnya adalah objek tersebut tersedia lagi.