अमेज़न S3 पुनर्प्राप्त हटाए गए फ़ाइल


20

क्या मैंने अपने S3 बाल्टी से हटाई गई फ़ाइल को पुनर्प्राप्त करना संभव है?

जवाबों:


20

अमेज़न S3 के दस्तावेज़ के अनुसार :

एक बार हटाए जाने के बाद, किसी ऑब्जेक्ट को पुनर्स्थापित करने या हटाना रद्द करने का कोई तरीका नहीं है।


यह दुर्भाग्यपूर्ण है S3 स्नैपशॉट का समर्थन नहीं करता है।
चुरंड

1
कुछ लोगों को उम्मीद देने के लिए, आजकल आप फ़ाइलों को अनडिलीट कर सकते हैं यदि आपकी बाल्टी में वर्ज़निंग सक्षम है।
jweyrich

कितना अच्छा ....?
स्काइटेल

43

यदि आपके पास संस्करण सक्षम है, तो आप कर सकते हैं! एक वर्जन बकेट पर, एक फाइल पर डिलीट एक्शन वास्तव में इसे डिलीट नहीं करता है, लेकिन यह "डिलीट मार्कर" के साथ एक वर्जन जोड़ता है। आप 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

दोस्त! आपकी सभी फ़ाइलों की स्क्रिप्ट को हटाना रद्द करने से मेरा जीवन बच गया। धन्यवाद।
हरोस्तविस्ट

ऊपर की स्क्रिप्ट के लिए आपको --output=textयदि आप इसे काम करना चाहते हैं तो जोड़ना होगा । वह मान रहा है कि आप .Txt फ़ाइल और नहीं .JSON फ़ाइल के माध्यम से अपने AWS कमांड को आउटपुट कर रहे हैं।
ब्रैड एलीसन

मैंने स्क्रिप्ट की कोशिश की है, लेकिन यह ऑब्जेक्ट को पुनर्स्थापित नहीं करता है, इसे स्थायी रूप से हटा देता है! क्या यह हो सकता है क्योंकि मैं बाल्टी का मालिक नहीं हूं?
निकोल

1
यह स्वीकृत उत्तर क्यों नहीं है? @vonhogen कृपया अपनी पसंद पर पुनर्विचार करें :)
Janaka Bandara

3

इस प्रश्न को अपडेट करने के रूप में मैं उत्तर की तलाश में था:

अब आप S3 बाल्टी में VERSIONING जोड़ सकते हैं। यह S3 विलोपन के बाद भी किसी ऑब्जेक्ट के संस्करणों को रखने का कारण होगा। पूर्ण प्रलेखन: http://docs.amazonwebservices.com/AmazonS3/latest/dev/Versioning.html


क्या एडब्ल्यूएस कंसोल पर हटाए गए फ़ाइल को पुनर्प्राप्त करना संभव है? ऐसा करने का कोई तरीका नहीं खोज सकता।
राफेल ओलिवेरा

0

अब आप AWS कंसोल का उपयोग करके ऑब्जेक्ट संस्करणों को सूचीबद्ध कर सकते हैं: http://docs.aws.amazon.com/AmazonS3/latest/UG/managing-objects-versioned-bucket.html

यदि आपके पास सही अनुमतियां हैं, तो आप हटाए गए मार्कर (हटाए गए ऑब्जेक्ट का नवीनतम संस्करण) को हटा सकते हैं और इसका परिणाम यह होगा कि ऑब्जेक्ट फिर से उपलब्ध है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.