Skip to content

É uma API que permiti fazer upload de arquivos no S3 da AWS, desenvolvi esse projeto com intuito de adicionar ao meu portfólio

Notifications You must be signed in to change notification settings

tarcisiodelmondes/minebox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minebox API

É uma API que permiti fazer upload de arquivos no S3 da AWS, desenvolvi esse projeto com intuito de adicionar ao meu portfólio

GitHub repo size GitHub language count

Funcionalidades

  • 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

Regras de negócio

  • 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

💻 Pré-requisitos

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>.

🚀 Executanto o projeto

É 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.

📝 Licença

Esse projeto está sob licença. Veja o arquivo LICENÇA para mais detalhes.

About

É uma API que permiti fazer upload de arquivos no S3 da AWS, desenvolvi esse projeto com intuito de adicionar ao meu portfólio

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages