De acordo com a documentação do Amazon S3:
Once deleted, there is no method to restore or undelete an object.
É possível recuperar um arquivo excluído do meu bucket do S3?
De acordo com a documentação do Amazon S3:
Once deleted, there is no method to restore or undelete an object.
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;
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
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.