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.

Dave Webb
fonte
É 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;
Chris Cinelli
fonte
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
3

Acabei de atualizar esta pergunta, pois estava procurando a resposta:

Você pode adicionar VERSIONING aos buckets S3 agora. Isso fará com que o S3 mantenha as versões de um objeto mesmo após a exclusão. Documentação completa: http://docs.amazonwebservices.com/AmazonS3/latest/dev/Versioning.html

dineth
fonte
É possível recuperar um arquivo excluído pelo AWS Console? Não consigo encontrar uma maneira de fazer isso.
Rafael Oliveira