NodeJS | Enviando, Recebendo arquivos | #22

NodeJS | Enviando, Recebendo arquivos | #22

Como Trabalhar com Arquivos na API

Introdução ao Tópico

  • O encontro aborda como trabalhar com arquivos em uma API, destacando a importância do tráfego de dados.
  • É possível enviar arquivos para a API, semelhante ao envio de fotos em redes sociais.

Tipos de Arquivos e Funcionalidade

  • Os arquivos podem ser diversos: imagens, vídeos, áudios; o foco inicial será em imagens.
  • A apresentação enfatiza a necessidade de não apenas enviar, mas também ler os arquivos armazenados na API.

Configuração do Multer

  • Para gerenciar uploads, utiliza-se o pacote multer, que simplifica o processo de manipulação de arquivos.
  • O multer é instalado via npm e configurado no código para definir onde os arquivos serão armazenados.

Estrutura de Armazenamento

  • Uma pasta chamada "Storage" é criada para armazenar os arquivos recebidos pela API.
  • Subpastas podem ser criadas dentro da pasta Storage para organizar diferentes tipos de uploads (ex: perfil, álbuns).

Implementação do Upload

  • Uma variável uploadPerfil é criada usando o multer para especificar o destino dos uploads.
  • A rota da API é configurada para receber um arquivo através do método POST e salvar na subpasta correta.

Manipulação dos Dados Recebidos

  • Ao configurar a rota, define-se que apenas um arquivo será recebido (single), nomeando-o como "imagem".

Enviando e Processando Imagens com Multer

Introdução ao processamento de imagens

  • O apresentador discute a importância de informações sobre a imagem, como tipo (JPEG), nome original e tamanho, que podem ser acessadas durante o upload.
  • Ele menciona que o nome original não é essencial, mas é útil para demonstrar as capacidades do sistema.

Resposta após o upload

  • Após receber a imagem, o sistema retorna informações como caminho da imagem, extensão e nome do arquivo.
  • O apresentador explica como testar essa funcionalidade usando o Thunder Client, configurando um POST com parâmetros adequados.

Selecionando e enviando uma imagem

  • O processo de envio envolve escolher um arquivo específico para upload; ele demonstra isso selecionando uma imagem do computador.
  • Ele opta por salvar uma nova imagem em um formato mais comum (webp), evitando problemas com extensões menos conhecidas.

Verificando o armazenamento da imagem

  • Após enviar a imagem, ele verifica se ela foi armazenada corretamente na pasta designada pelo multer.
  • A resposta do servidor confirma que a imagem foi processada corretamente e fornece detalhes sobre seu armazenamento.

Identificação única de arquivos

  • O multer gera automaticamente nomes únicos para evitar conflitos entre arquivos com nomes iguais.
  • Embora a extensão possa não ser salva corretamente inicialmente, ele explica que isso não impede a visualização da imagem quando renomeada.

Considerações sobre tipos de arquivos

  • O apresentador destaca que diferentes tipos de arquivos (áudio, vídeo etc.) também podem ser enviados; apenas é necessário direcionar para pastas apropriadas.
  • Ele menciona que ao integrar um banco de dados no futuro, será possível gerenciar melhor os arquivos enviados pela aplicação.

Criando rotas na API para imagens

  • A discussão avança para como criar rotas na API para permitir acesso às imagens armazenadas.

Como Liberar Acesso a Imagens em uma API?

Acessando Imagens na API

  • O apresentador menciona o link da API e o caminho para acessar imagens armazenadas, especificamente em /Storage/perfil.
  • Ao tentar acessar a imagem, ocorre um erro de "não encontrada", indicando que a pasta não foi liberada na API.
  • É explicado que por padrão, os arquivos do código são seguros e não acessíveis externamente, apenas os endpoints permitidos estão disponíveis.

Liberando Pastas na API

  • O apresentador discute como liberar o acesso à pasta inteira perfil dentro do diretório Storage, utilizando o Express.
  • Ele detalha que usará express.static para permitir o acesso a arquivos estáticos da pasta perfil.
  • Com uma linha de código, todos os arquivos dentro de perfil/storage são liberados para acesso externo.

Verificando Acesso às Imagens

  • O apresentador sugere testar se as alterações funcionaram ao atualizar a página; ele confirma que agora as imagens podem ser acessadas corretamente.