Recuperar arquivo excluído do Amazon S3


Respostas:


20

De acordo com a documentação do Amazon S3:

Uma vez excluído, não há método para restaurar ou recuperar um objeto.


É lamentável que o S3 não suporte instantâneos.
churnd

11
Para dar esperança a algumas pessoas, hoje em dia você pode cancelar a exclusão de arquivos se o seu bucket tiver o controle de versão ativado.
jweyrich

que droga ....?
amigos estão

43

Se você tem o controle de versão ativado, sim pode! Em um bucket com versão, uma ação de exclusão em um arquivo realmente não a exclui, mas adiciona uma versão com um "Excluir Marcador". Você pode excluir o marcador de exclusão com a CLI da AWS:

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

Você pode obter todos os arquivos no balde com

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

Se você deseja cancelar a exclusão de todos os arquivos no bucket, tente:

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;

Agradeço esta resposta! Trabalhou na perfeição.
Tacotuesday 4/01/16

cara! seu script de recuperar todos os arquivos salvou minha vida. obrigado.
herostwist

Para o script acima, você precisa adicionar um --output=textse quiser que ele funcione. Ele está assumindo que você está produzindo seu comando da AWS por meio de um arquivo .txt e não do arquivo .JSON.
Brad Allison

Eu tentei o script, mas ele não restaura o objeto, ele o exclui permanentemente! Pode ser porque eu não sou o dono do balde?
Nicola

11
Por que essa não é a resposta aceita? @vonhogen por favor, reconsidere sua escolha :)
Janaka Bandara


Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.