É uma API que permiti fazer upload de arquivos no S3 da AWS, desenvolvi esse projeto com intuito de adicionar ao meu portfólio
- Criar usuário
- Autenticar usuário com token JWT e REFRESH TOKEN
- Atualizar dados do usuário
- Apagar usuário com seus outros dados que estão ligados a ele
- Buscar informações do usuário pelo id
- Salvar arquivos no S3 da AWS
- Renomear nome do arquivo
- Listar arquivos de um usuário
- Baixar um arquivo do usuário autenticado
- Deletar arquivo do S3 e da base de dados
- Rota para atualizar token JTW utilizando o REFRESH TOKEN
- Documentação com SWAGGER
- Testar controllers e services com JUnit e Mockito
- Adicionar monitoramento com Sentry
- Deploy na AWS usando CI/CD
- Não pode salvar arquivos maiores do que 50MB
- O usuário precisa ser dono do arquivo para podê-lo deletar ou renomeá-lo
- O usuário precisa estar logado para atualizar suas informações ou apagar sua conta
- Apagar usuário junto com seus outros dados que estão ligados a ele
- Só o usuário pode visualizar seus arquivos, por 2 horas (É o tempo da url pre assinada que é gerada para o usuário ter acesso ao arquivo expirar).
- Um usuário não pode baixar um arquivo que não o pertence
Antes de começar, verifique se você atendeu aos seguintes requisitos:
- Você instalou a versão mais recente do
JAVA 17, MAVEN 3.6 ou superior, Git
- Você tem uma máquina
<Windows / Linux / Mac>
.
É necessário configurar as variáveis de ambiente da AWS e as permissões de IAM necessárias para interagir com o S3. Pode adicionar isso no seu .bashrc ou no .zshenv, se estiver usando o Windows sem WSL pode seguir esse tutorial
// Linux / Mac
export AWS_REGION="region que você configurou o S3"
export AWS_ACCESS_KEY_ID=""
export AWS_SECRET_ACCESS_KEY=""
export BUCKET_NAME="nome do seu bucket"
Agora com as variáveis de ambiente da AWS configurada corretamente, clone esse projeto.
git clone https://github.com/tarcisiodelmondes/minebox
cd minebox
mvn spring-boot:run
Se ocorreu tudo bem, você tera um servidor rodando em http://localhost:8080
, acesse http://localhost:8080/swagger-ui/index.html pelo seu navegador para ter acesso à documentação da API.
Esse projeto está sob licença. Veja o arquivo LICENÇA para mais detalhes.