Este projeto consiste na criação de uma solução em Python para gerenciar objetos no Amazon S3, utilizando a biblioteca Botocore.
A solução foi projetada para baixar objetos do S3 e, em seguida, remover esses objetos do S3. Antes de realizar o download, o script verifica se o objeto já existe em uma pasta de objetos processados, como parte de um processo separado de ETL.
Se o objeto já tiver sido processado, não será baixado novamente e será removido do S3. Caso contrário, o objeto será baixado e, em seguida, removido do S3, oferecendo um gerenciamento eficiente e simplificado.
Sinta-se à vontade para clonar, adaptar e ajustar o projeto conforme necessário. Consulte as instruções abaixo, se precisar. 👽
Este projeto foi desenvolvido utilizando o Poetry + Pyenv para gerenciamento de ambientes virtuais e bibliotecas.
- botocore (v1.34.78)
- python-dotenv (v1.0.1)
Você pode instalar as dependências manualmente, ou, utilizando o Poetry ou o Pip com os seguintes comandos:
poetry install
pip install -r requirements.txt
- Necessário conta na AWS.
- Baixe o
Acess Keys
no Security Credentials. - Crie um arquivo
.env
na pastaconfig
e salve nele a seguinte linha:aws_access_key_id=acess_key aws_secret_access_key=secret_access_key
- Substitua o
acess_key
e osecret_access_key
pelos IDs existentes no arquivo deAcess Keys
baixado anteriormente. - Configure as variáveis:
bucket_name=nome_do_bucket path_to_search=caminho_do_objeto/nomeclatura_do_objeto local_base_path=pasta_local
- Configure a região na função
get_session
existente no script.
Após seguir esses passos, você estará pronto para automatizar o download e remoção dos objetos no S3.
- A documentação pode não estar tão detalhada, talvez seja necessário um certo nível de conhecimento para adaptar o código.
- Estão disponíveis dois arquivos de teste na pasta
data/input
, caso queira utilizá-los. - Este projeto representa uma refatoração de um script que desenvolvi na empresa onde trabalho atualmente, o MagaluBank. Enfrentamos "desafios" ao tentar baixar vários objetos usando o boto3, o que me levou a optar pelo botocore.