Amazon S3 восстановить удаленный файл

Ответы:

20

Согласно документации Amazon S3:

После удаления, не существует способа, чтобы восстановить или восстановить объект.

Дэйв Уэбб
источник
К сожалению, S3 не поддерживает снимки.
churnd
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
чувак! ваш сценарий восстановления всех файлов просто спас мне жизнь. Спасибо.
herostwist
Для приведенного выше сценария необходимо добавить a, --output=textесли вы хотите, чтобы он работал. Он предполагает, что вы выводите команду AWS через файл .txt, а не файл .JSON.
Брэд Allison
Я пробовал скрипт, но он не восстанавливает объект, он удаляет его навсегда! Может быть, потому что я не владелец ведра?
Никола
1
Почему это не принятый ответ? @vonhogen, пожалуйста, пересмотрите свой выбор :)
Джанака Бандара
3

Просто обновляя этот вопрос, как я искал ответ:

Теперь вы можете добавить VERSIONING к корзинам S3. Это приведет к тому, что S3 сохранит версии объекта даже после удаления. Полная документация: http://docs.amazonwebservices.com/AmazonS3/latest/dev/Versioning.html

dineth
источник
Можно ли восстановить удаленный файл через AWS Console? Не могу найти способ сделать это.
Рафаэль Оливейра
0

Теперь вы можете получить список версий объектов с помощью консоли AWS: http://docs.aws.amazon.com/AmazonS3/latest/UG/managing-objects-versioned-bucket.html.

Если у вас есть необходимые разрешения, вы можете удалить маркер удаления (последнюю версию удаленного объекта), и в результате этот объект снова станет доступен.

Фабиан М
источник