Destino Dev

Cursos

Sistema de Upload: Imagens e PDFs com Node.js + Multer + S3

Código do curso: github.com/johnpires/sistema-upload-nodejs-multer-s3

Aprenda a construir um sistema de upload profissional para imagens e PDFs usando Node.js, Multer e Amazon S3. Projeto hands-on cobrindo validação de arquivos, armazenamento em nuvem, geração de URLs assinadas e boas práticas de segurança.

O que você vai aprender

Construir um sistema de upload completo com Node.js + Multer + Amazon S3. Validar tipos e tamanhos de arquivo. Gerar URLs assinadas para acesso seguro. Implementar boas práticas de segurança em uploads. Fazer deploy em produção com Railway.

Pré-requisitos

Conhecimento básico de JavaScript, Node.js e Express. Noções de REST API. Conta AWS (tier gratuito é suficiente).

Conteúdo do curso

Módulo 1: Módulo 1 — Introdução e Setup

Visão geral do projeto, configuração do ambiente e estrutura do código.

  1. 1.1 O que vamos construir (8 min)
  2. 1.2 Configurando o ambiente de desenvolvimento (8 min)
  3. 1.3 Estrutura do projeto (8 min)

Módulo 2: Módulo 2 — Fundamentos do Multer

Configuração do Multer, validação de tipos e tamanho, upload de múltiplos arquivos.

  1. 2.1 O que é Multer e como funciona (8 min)
  2. 2.2 Filtrando tipos de arquivo com fileFilter (8 min)
  3. 2.3 Limitando tamanho e múltiplos arquivos (8 min)
  4. 2.4 Sanitizando nomes de arquivo (8 min)
  5. 2.5 Testando uploads com Postman e REST Client (8 min)

Módulo 3: Módulo 3 — Amazon S3: Configuração e Integração

Criação do bucket S3, configuração de credenciais AWS e SDK Node.js.

  1. 3.1 Criando bucket S3 e configurando permissões (8 min)
  2. 3.2 Configurando o SDK AWS v3 no Node.js (8 min)
  3. 3.3 Fazendo upload para o S3 com PutObjectCommand (8 min)
  4. 3.4 Deletando arquivos e gerenciando o bucket (8 min)

Módulo 4: Módulo 4 — Upload Direto para o S3 com multer-s3

Integração multer-s3, organização em pastas, URLs públicas e assinadas.

  1. 4.1 Upload direto ao S3 com multer-s3 (8 min)
  2. 4.2 URLs assinadas (Presigned URLs) (2 min)
  3. 4.3 Redimensionamento de imagens com Sharp (2 min)
  4. 4.4 Middleware de autenticação JWT (8 min)

Módulo 5: Módulo 5 — API de Upload Completa

Rotas de upload de imagem e PDF, redimensionamento com Sharp, listagem e autenticação JWT.

  1. 5.1 API completa: rota de upload de imagem (8 min)
  2. 5.2 Rota de upload de múltiplas imagens (2 min)
  3. 5.3 Rota de upload de PDF (2 min)
  4. 5.4 Listagem e gerenciamento de arquivos (2 min)
  5. 5.5 Tratamento de erros global (2 min)

Módulo 6: Módulo 6 — Segurança e Boas Práticas

Sanitização de nomes, rate limiting, proteção contra arquivos maliciosos e variáveis de ambiente.

  1. 6.1 Rate limiting para rotas de upload (8 min)
  2. 6.2 Proteção contra uploads maliciosos (2 min)
  3. 6.3 Configuração segura com variáveis de ambiente (8 min)
  4. 6.4 Logs estruturados com Winston (8 min)

Módulo 7: Módulo 7 — Deploy e Conclusão

Deploy no Railway, configuração de variáveis em produção e próximos passos.

  1. 7.1 Deploy no Railway com variáveis de ambiente (8 min)
  2. 7.2 Testando a API em produção (8 min)
  3. 7.3 Próximos passos e melhorias (2 min)