Amazon S3 กู้คืนไฟล์ที่ถูกลบ


คำตอบ:


20

ตามเอกสารของ Amazon S3:

เมื่อถูกลบไปแล้วจะไม่มีวิธีการกู้คืนหรือยกเลิกการลบวัตถุ


มันโชคร้ายที่ S3 ไม่รองรับสแนปชอต
churnd

1
เพื่อให้ความหวังแก่บางคนปัจจุบันคุณสามารถยกเลิกการลบไฟล์ได้หากที่เก็บข้อมูลของคุณเปิดใช้งานการกำหนดเวอร์ชัน
jweyrich

Dammit เป็นยังไง ....
scytale

43

หากคุณเปิดใช้งานการกำหนดเวอร์ชันคุณสามารถทำได้! บนที่ฝากเวอร์ชันการกระทำการลบในไฟล์ไม่ได้เป็นการลบจริงๆ แต่จะเพิ่มเวอร์ชันที่มี "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;

ฉันขอขอบคุณคำตอบนี้! ทำงานได้อย่างไร้ที่ติ
tacotuesday

เพื่อน! สคริปต์ยกเลิกการลบไฟล์ทั้งหมดของคุณเพิ่งช่วยชีวิตฉันไว้ ขอขอบคุณ.
herostwist

สำหรับสคริปต์ด้านบนคุณต้องเพิ่ม a --output=textถ้าคุณต้องการให้มันทำงาน เขาสมมติว่าคุณกำลังส่งคำสั่ง AWS ของคุณผ่านไฟล์. txt ไม่ใช่ไฟล์. JSON
แบรดอัลลิสัน

ฉันได้ลองใช้สคริปต์ แต่ไม่คืนค่าวัตถุจะลบอย่างถาวร! อาจเป็นเพราะฉันไม่ได้เป็นเจ้าของถังหรือไม่
nicola

1
ทำไมนี่ไม่ใช่คำตอบที่ยอมรับ? @ vonhogen โปรดพิจารณาทางเลือกของคุณอีก :) :)
Janaka Bandara

3

เพียงอัปเดตคำถามนี้เมื่อฉันต้องการคำตอบ:

คุณสามารถเพิ่ม VERSIONING ใน S3 buckets ได้ทันที สิ่งนี้จะทำให้ S3 เก็บรุ่นของวัตถุแม้หลังจากการลบ เอกสารฉบับเต็ม: http://docs.amazonwebservices.com/AmazonS3/latest/dev/Versioning.html


เป็นไปได้หรือไม่ที่จะดึงไฟล์ที่ถูกลบผ่าน AWS Console? ไม่สามารถหาวิธีที่จะทำเช่นนั้น
Rafael Oliveira

0

ตอนนี้คุณสามารถแสดงรุ่นของวัตถุโดยใช้คอนโซล AWS: http://docs.aws.amazon.com/AmazonS3/latest/UG/managing-objects-versioned-bucket.html

หากคุณมีสิทธิ์ที่ถูกต้องคุณสามารถลบเครื่องหมายลบ (รุ่นล่าสุดของวัตถุที่ถูกลบ) และผลลัพธ์จะเป็นวัตถุที่มีอยู่อีกครั้ง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.