GoPload é um serviço de upload de arquivos construído com Go e Gin. Suporta o upload de arquivos, download por ID e exclusão de arquivos.
GoPload permite o upload, download e exclusão de arquivos de maneira eficiente e segura. Utiliza tecnologias como Go, Gin e Gorm para gerenciamento de rotas e banco de dados, e Docker para facilitar a implantação em diferentes ambientes.
- GET /healthcheck: Verifica o status do serviço.
- POST /upload: Rota para upload de arquivos.
- Parâmetros:
- files: Campo obrigatório. Um ou mais arquivos para upload (multipart/form-data).
- path (opcional): Define o caminho para salvar o arquivo em uma pasta específica.
- Parâmetros:
- GET /file/:idArquivo: Rota para baixar arquivos pelo ID.
- DELETE /file/:id: Rota para deletar um arquivo pelo ID. Atualiza o campo
is_active
parafalse
e define a data de exclusão.
A aplicação dispõe de dois ambientes: desenvolvimento (dev) e produção (prod). Para iniciar a aplicação, especifique o perfil desejado no Docker Compose.
A aplicação requer um arquivo .env
com as seguintes chaves para funcionar:
DB_CONNECTION_STRING=
BASIC_AUTH_USERNAME=
BASIC_AUTH_PASSWORD=
Certifique-se de ter o Docker instalado em sua máquina. Você pode baixá-lo em Docker's website.
Clone este repositório para o seu ambiente local usando o seguinte comando:
git clone https://github.com/seu-usuario/seu-repositorio.git
cd gopload
Renomeie o arquivo .env.example para .env e preencha as chaves com as informações necessárias, como as configurações do banco de dados e as credenciais de autenticação básica.
Navegue até o diretório raiz do projeto e execute o seguinte comando para subir a aplicação usando o Docker Compose. Lembre-se de especificar o perfil desejado (prod ou dev):
docker-compose --profile prod up -d
Após a execução bem-sucedida do comando docker-compose up, a aplicação estará disponível em http://localhost:3000 (ou na porta especificada no arquivo .env).
Para fazer upload de arquivos, envie uma requisição POST para /upload contendo um ou mais arquivos no campo files (multipart/form-data). Você também pode opcionalmente fornecer um campo path para especificar o local onde o arquivo será salvo.
Acesse a rota /file/:idArquivo para baixar arquivos pelo ID.
Envie uma requisição DELETE para /file/:id para deletar um arquivo pelo ID. Isso atualizará o campo is_active para false e definirá a data de exclusão.
cmd
: Contém o arquivo principal para iniciar a aplicação.internal
: Contém a lógica da aplicação, incluindo módulos, entidades e banco de dados.pkg
: Contém pacotes reutilizáveis.scripts
: Contém scripts úteis para desenvolvimento e implantação.
- Faça um fork do projeto
- Crie uma branch para sua feature (
git checkout -b feature/nome-da-feature
) - Commit suas mudanças (
git commit -am 'Adiciona nova feature'
) - Faça o push para a branch (
git push origin feature/nome-da-feature
) - Crie um novo Pull Request
Este projeto está licenciado sob a Licença MIT
.