Skip to content

Um servidor de compartilhamento de arquivos construído com Node.js, TypeScript, Fastify e Prisma. Permite o upload e download de arquivos, com suporte a configuração de tamanho máximo de arquivo.

Notifications You must be signed in to change notification settings

euandrelucas/adg-share

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ADG Share

Um servidor de compartilhamento de arquivos construído com Node.js, TypeScript, Fastify e Prisma. Permite o upload e download de arquivos, com suporte a configuração de tamanho máximo de arquivo.

Funcionalidades

  • Upload de arquivos com verificação de tamanho máximo configurável
  • Download de arquivos
  • Armazenamento de metadados dos arquivos no banco de dados
  • API para acessar arquivos por URL

Tecnologias Utilizadas

  • Node.js: Ambiente de execução para JavaScript
  • TypeScript: Superset do JavaScript para tipagem estática
  • Fastify: Framework web rápido e leve para Node.js
  • Prisma: ORM para gerenciamento de banco de dados
  • UUID: Gerador de identificadores únicos

Pré-requisitos

  • Node.js (v16 ou superior)
  • npm (ou yarn)

Instalação

  1. Clone o repositório:
$ git clone https://github.com/seu-usuario/adg-share.git
$ cd adg-share
  1. Instale as dependências:
$ npm install
  1. Configure o banco de dados e as variáveis de ambiente: Copie o arquivo .env.example para .env e ajuste as configurações conforme necessário.
$ cp .env.example .env
  1. Configure o banco de dados:
  • Crie o banco de dados e execute as migrações.
$ npx prisma migrate dev

Scripts

  • npm run dev: Inicia o servidor em modo de desenvolvimento (usando ts-node).
  • npm run build: Compila o código TypeScript para JavaScript na pasta dist.
  • npm start: Inicia o servidor com o código compilado.
  • npm run lint: Verifica o código com ESLint.
  • npm run format: Formata o código com Prettier.
  • npm run migrate: Executa as migrações do Prisma.
  • npm run seed: Executa o script de seed do Prisma (se configurado).

Uso

Upload de Arquivos

Para fazer o upload de um arquivo, envie uma solicitação POST para o endpoint /upload com o arquivo anexado.

Exemplo usando curl:

$ curl -F "file=@/caminho/para/seu/arquivo.txt" http://localhost:3000/upload

Download de Arquivos

Para baixar um arquivo, faça uma solicitação GET para o endpoint /files/:id, substituindo :id pelo ID do arquivo.

Exemplo usando curl:

$ curl http://localhost:3000/files/seu-file-id -o arquivo-baixado.txt

Configuração

O tamanho máximo do arquivo pode ser configurado no arquivo .env:

MAX_FILE_SIZE=10485760  # 10 MB

Contribuição

Sinta-se à vontade para contribuir com melhorias! Faça um fork do repositório, crie uma branch para suas alterações e envie um pull request.

About

Um servidor de compartilhamento de arquivos construído com Node.js, TypeScript, Fastify e Prisma. Permite o upload e download de arquivos, com suporte a configuração de tamanho máximo de arquivo.

Topics

Resources

Stars

Watchers

Forks