เป็นไปได้หรือไม่ที่จะกู้คืนไฟล์ที่ฉันลบออกจากที่ฝากข้อมูล S3
เป็นไปได้หรือไม่ที่จะกู้คืนไฟล์ที่ฉันลบออกจากที่ฝากข้อมูล S3
คำตอบ:
หากคุณเปิดใช้งานการกำหนดเวอร์ชันคุณสามารถทำได้! บนที่ฝากเวอร์ชันการกระทำการลบในไฟล์ไม่ได้เป็นการลบจริงๆ แต่จะเพิ่มเวอร์ชันที่มี "Delete Marker" คุณสามารถลบเครื่องหมายลบด้วย AWS CLI:
aws s3api delete-object --bucket yourbucket-name --key "yourfile" --version-id id_of_the_delete_marker
คุณสามารถรับไฟล์ทั้งหมดในที่เก็บข้อมูลด้วย
aws --output text s3api list-object-versions --bucket yourbucket-name > files.txt
หากคุณต้องการยกเลิกการลบไฟล์ทั้งหมดในที่เก็บข้อมูลคุณสามารถลอง:
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
ถ้าคุณต้องการให้มันทำงาน เขาสมมติว่าคุณกำลังส่งคำสั่ง AWS ของคุณผ่านไฟล์. txt ไม่ใช่ไฟล์. JSON
เพียงอัปเดตคำถามนี้เมื่อฉันต้องการคำตอบ:
คุณสามารถเพิ่ม VERSIONING ใน S3 buckets ได้ทันที สิ่งนี้จะทำให้ S3 เก็บรุ่นของวัตถุแม้หลังจากการลบ เอกสารฉบับเต็ม: http://docs.amazonwebservices.com/AmazonS3/latest/dev/Versioning.html
ตอนนี้คุณสามารถแสดงรุ่นของวัตถุโดยใช้คอนโซล AWS: http://docs.aws.amazon.com/AmazonS3/latest/UG/managing-objects-versioned-bucket.html
หากคุณมีสิทธิ์ที่ถูกต้องคุณสามารถลบเครื่องหมายลบ (รุ่นล่าสุดของวัตถุที่ถูกลบ) และผลลัพธ์จะเป็นวัตถุที่มีอยู่อีกครั้ง