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

25027
vonhogen

Можно ли восстановить файл, который я удалил из своей корзины S3?

16

4 ответа на вопрос

32
Chris Cinelli

If you have versioning enable, yes you can! On a versioned bucket, a delete action on a file does not really delete it but it adds a version with a "Delete Marker". You can delete the delete marker with the AWS CLI:

aws s3api delete-object --bucket yourbucket-name --key "yourfile" --version-id id_of_the_delete_marker 

You can get all the files in the bucket with

aws --output text s3api list-object-versions --bucket yourbucket-name > files.txt 

If you want to undelete all the files in the bucket you can try:

echo '#!/bin/bash' > undeleteScript.sh && aws --output text s3api list-object-versions --bucket yourbucket-name | grep -E "^DELETEMARKERS" | awk '' >> undeleteScript.sh && . undeleteScript.sh; rm -f undeleteScript.sh; 
Я ценю этот ответ! Работал без нареканий. nojak 8 лет назад 0
это спасло мой вечер. благодарю вас! Von Landfried 8 лет назад 0
чувак! ваш сценарий восстановления всех файлов только что спас мне жизнь. благодарю вас. herostwist 8 лет назад 0
Для приведенного выше сценария вам нужно добавить `--output = text`, если вы хотите, чтобы он работал. Он предполагает, что вы выводите команду AWS через файл .txt, а не файл .JSON. Brad Allison 7 лет назад 0
Я пробовал скрипт, но он не восстанавливает объект, он удаляет его навсегда! Может быть, потому что я не владелец ведра? nicola 6 лет назад 0
Почему это не принятый ответ? @vonhogen, пожалуйста, пересмотрите свой выбор :) Janaka Bandara 6 лет назад 0
19
Dave Webb

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

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

К сожалению, S3 не поддерживает снимки. churnd 14 лет назад 0
Чтобы дать надежду некоторым людям, в настоящее время вы можете восстанавливать файлы, если в вашем корзине включено управление версиями. jweyrich 7 лет назад 0
3
dineth

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

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

Можно ли восстановить удаленный файл через Консоль AWS? Не могу найти способ сделать это. Rafael Oliveira 10 лет назад 0
0
Fabian M

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

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