Amazon S3 Recuperar Arquivo Excluído

16

É possível recuperar um arquivo excluído do meu bucket do S3?

    
por vonhogen 15.10.2009 / 12:00

4 respostas

18

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

Once deleted, there is no method to restore or undelete an object.

    
por 15.10.2009 / 12:18
32

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

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

Você pode obter todos os arquivos no intervalo com

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

Se você deseja recuperar todos os arquivos do intervalo, 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 "$3" --version-id "$5";"}' >> undeleteScript.sh && . undeleteScript.sh; rm -f undeleteScript.sh;
    
por 30.12.2015 / 23:52
3

Estou apenas atualizando esta pergunta enquanto estava procurando a resposta:

Você pode adicionar VERSIONING a 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: link

    
por 12.11.2012 / 02:06
0

Agora você pode listar versões de objetos usando o console da AWS: link

Se você tiver as permissões corretas, poderá excluir o marcador de exclusão (a versão mais recente de um objeto excluído) e o resultado será que o objeto estará disponível novamente.

    
por 22.08.2016 / 20:20