Amazon S3 Відновлення видаленого файлу


Відповіді:


20

Згідно з документацією Amazon S3:

Після видалення не існує способу відновлення або відновлення об'єкта.


Прикро S3 не підтримує знімків.
churnd

1
Щоб сподіватися на деякі люди, зараз ви можете відновити файли, якщо у вашому відрі активовано версію.
jweyrich

як чорт ....?
scytale

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;

Я ціную цю відповідь! Працювали бездоганно.
такоту вівторок

чувак! Ваш сценарій для відновлення всіх файлів просто врятував мені життя. Дякую.
herostwist

Для вищезазначеного сценарію потрібно додати а, --output=textякщо ви хочете, щоб він працював. Він припускає, що ви виводите команду AWS через файл .txt, а не файл .JSON.
Бред Еллісон

Я спробував сценарій, але він не відновлює об'єкт, він видаляє його назавжди! Може бути, бо я не власник відра?
nicola

1
Чому це не прийнята відповідь? @vonhogen, будь ласка, перегляньте свій вибір :)
Janaka Bandara

3

Тільки оновлюючи це питання, коли я шукав відповідь:

Ви можете додати VERSIONING до відра S3 зараз. Це призведе до того, що S3 зберігає версії об'єкта навіть після видалення. Повна документація: http://docs.amazonwebservices.com/AmazonS3/latest/dev/Versioning.html


Чи можливо отримати видалений файл через консоль AWS? Не можете знайти спосіб це зробити.
Рафаель Олівейра

0

Тепер ви можете перелічити версії об’єктів за допомогою консолі AWS: http://docs.aws.amazon.com/AmazonS3/latest/UG/managing-objects-versioned-bucket.html

Якщо у вас є правильні дозволи, ви можете видалити маркер видалення (остання версія видаленого об'єкта), і результат буде те, що об’єкт знову буде доступний.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.