Como Fazer Upload de Gigabytes de Arquivos de forma escalável usando Node.js || Erick Wendel

แชร์
ฝัง
  • เผยแพร่เมื่อ 29 ธ.ค. 2024

ความคิดเห็น • 69

  • @madruguinhadocs
    @madruguinhadocs 4 ปีที่แล้ว +1

    Opa, já estou com a mão na massa!

  • @andradevander
    @andradevander 4 ปีที่แล้ว +1

    Excelente, iremos utilizar em uma operação

  • @nicholaseduardooficial
    @nicholaseduardooficial 4 ปีที่แล้ว +1

    Conteúdo foda, rumo aos 100k

  • @ricardospara
    @ricardospara 4 ปีที่แล้ว +33

    Boaaa man! ótimo conteudo.
    Sugestão de conteúdo:
    - Background Jobs.
    - Construção de api com boas práticas.
    - Clean architecture.
    - Testes no node (integração/unitário).
    - Microsserviços (comunicação por filas ou grpc).

  • @AnselmoLimamil
    @AnselmoLimamil 4 ปีที่แล้ว +2

    Como sempre, conteúdo de gente grande do mestre Erick... Grato por compartilhar!

  • @otaviocr9434
    @otaviocr9434 4 ปีที่แล้ว +1

    Sensacional como sempre!

  • @antonioribeiro1988
    @antonioribeiro1988 4 ปีที่แล้ว +4

    Vídeo Top!! Você está de parabéns!!! o que vc fez em 40minutos eu levei 3h... rssss... não sou programador... sou um curioso entusiasta! Muito bom! Valeu!

  • @johnbox5540
    @johnbox5540 4 ปีที่แล้ว +2

    top demais, Erick!

  • @isotrinux
    @isotrinux 4 ปีที่แล้ว +2

    Fino demais!
    Parabéns, excelente material

    • @ErickWendelAcademy
      @ErickWendelAcademy  4 ปีที่แล้ว

      Opa Ademar! Fico feliz que gostou, manda para a galera por ai o/

  • @juaooliveiralp
    @juaooliveiralp 4 ปีที่แล้ว +1

    Baralho! baita conteúdo. Parabéns erick, cada vez melhor.
    Dica de conteúdo.
    -Preocupações para aplicação do zero com clear architecture.
    -Microsserviços

    • @ErickWendelAcademy
      @ErickWendelAcademy  4 ปีที่แล้ว

      Boaaa sensacional João!! Valeu pelas sugestões o/

  • @diegohenrique5227
    @diegohenrique5227 4 ปีที่แล้ว +2

    Ótimo vídeo!! E Erik queria deixar como sugestão de você fazer um vídeo criando uma pequena lib para roteamento com os módulos nativos do nodejs

    • @ErickWendelAcademy
      @ErickWendelAcademy  4 ปีที่แล้ว

      boaaaaaa. Nao entendi muito bem a ideia, o roteamento você diz criar módulos nativos e entao liga-los usando Javascript?

    • @diegohenrique5227
      @diegohenrique5227 4 ปีที่แล้ว +1

      @@ErickWendelAcademy Algo que abstraia melhor o modulo nativo do HTTP, bem simples, não precisa nem de sistema de middleware uma espécie de express router, não sei se seria MT complicado na vdd

    • @ErickWendelAcademy
      @ErickWendelAcademy  4 ปีที่แล้ว

      Boa, mas esse aí ja temos um aqui bem simples. No video anterior eu mostrei como construir uma API sem frameworks, algo assim que você diz?

    • @diegohenrique5227
      @diegohenrique5227 4 ปีที่แล้ว +1

      @@ErickWendelAcademy Assim, vi agora é algo assim mesmo, obrigado!

    • @ErickWendelAcademy
      @ErickWendelAcademy  4 ปีที่แล้ว

      @@diegohenrique5227 boaaa sensacional o/

  • @kaiophillipe6004
    @kaiophillipe6004 2 ปีที่แล้ว

    Brabo!

  • @ovoconfiavel
    @ovoconfiavel 4 ปีที่แล้ว +2

    Boa Erick!
    Uma sugestão bacana de vídeo que apanhei muito na época e todo material que e encontrei na net estava defasado é sobre multi-tenant usando CLS (Continuation Local Storage)
    Ou seja, como armazenar/consultar informações no escopo de "REQUEST" em todas as camadas de uma API.
    (explico melhor nos comments abaixo)

    • @ovoconfiavel
      @ovoconfiavel 4 ปีที่แล้ว +1

      Exemplo simples:
      Imagine que vc receba um token jwt no header de uma request (rest), esse middleware valida e armazena o ID do usuário no CLS, aí lá na camada de persistência vc use essa informação (id do user) para filtrar apenas os dados daquele usuário (where userID = 123)

    • @ovoconfiavel
      @ovoconfiavel 4 ปีที่แล้ว +1

      Outro exemplo bacana de uso é esse middleware declarar um requestID (randômico) e todos os logs de todas as camadas dessa request insere esse requestID.
      Isso ajuda demais na rastreabilidade de um fluxo nos logs.

    • @ovoconfiavel
      @ovoconfiavel 4 ปีที่แล้ว +1

      O grande problema que o CLS da uns bugs de perca de contexto com nodejs 10+, principalmente com o uso de async/await.
      Não sei se tem alternativas melhores que o CLS para armazenar informações no escopo de REQUEST já que o nodejs não tem Thread Local Storage (como em Java e C# por exemplo)

    • @ErickWendelAcademy
      @ErickWendelAcademy  4 ปีที่แล้ว

      boaaa sensacional!! Muito obrigado pela sugestão

  • @raphael.portela
    @raphael.portela ปีที่แล้ว

    voce utilizaria qual serviço pra armazenar os arquivos e se conectar com outro backend? aws?

  • @jonatascunha5340
    @jonatascunha5340 4 ปีที่แล้ว +1

    Sensacional.

  • @lorddrumond3937
    @lorddrumond3937 ปีที่แล้ว

    porque quando clico sem enviar arquivo ele faz uma requisição, mas quando seleciono o arquivo ele faz três?

  • @victorlessa738
    @victorlessa738 3 ปีที่แล้ว

    Meu showSize não funcionou da como se a função n está definida

  • @diegohenrique5227
    @diegohenrique5227 3 ปีที่แล้ว +2

    Uma dica pra utilizar es modules no frontend do dia-a-dia, ex:
    Importação:
    Arquivo:
    import io from "cdn.exemplo.com"
    E será lido normalmente :), só que aí teria que ver sobre suporte nós browser e etc.

    • @ErickWendelAcademy
      @ErickWendelAcademy  3 ปีที่แล้ว +1

      boaa! Já temos algumas aulas usando os ESModules aqui no canal. Nao quis usar nessa aula para nao complicar demais hehe. Valeu pela sugestao!!

  • @Rico220990
    @Rico220990 4 ปีที่แล้ว +1

    Ja que o proximo video vai ser fazet upload dos arquivos q vem do front. Poderia ta particionando arquivo(s) e enviar pra lugares diferentes

    • @ErickWendelAcademy
      @ErickWendelAcademy  4 ปีที่แล้ว +1

      Opaaaa vamos fazer sim essa parte de particionar o arquivo, mas ele vai ser salvo no mesmo lugar

  • @caiomestres1492
    @caiomestres1492 4 ปีที่แล้ว

    Fantástico Wendel !

  • @mathws1
    @mathws1 4 ปีที่แล้ว +1

    Usando Sources tab e debugger ao invés de console.log >>>>>>>>>>>>>>>>>>> universo

  • @Halaim
    @Halaim 4 ปีที่แล้ว +1

    Obrigado pelo conteúdo Erick. 2 perguntas: 1 - Tem previsão de data para a continuação? 2 - Vai ser possível enviar os múltiplos arquivos pelo formulário de contato diretamente para o Google Driver? Pela economia que teremos no armazenamento, ao invés de usar o armazenamento da nossa própria hospedagem. Agradeço desde já.

    • @ErickWendelAcademy
      @ErickWendelAcademy  4 ปีที่แล้ว +1

      Opa!!
      1 - saiu hoje o video de continuação
      2 - Sim, é possível, eu vou ensinar a forma raíz, em salvar em disco e tem um desafio para você incrementar e salvar em um google drive, AWS S3, Microsoft Blob Storage ou qualquer serviço de armazenamento que quiser.

    • @Halaim
      @Halaim 4 ปีที่แล้ว

      @@ErickWendelAcademy Obrigado Erick

  • @scorpionvv
    @scorpionvv 4 ปีที่แล้ว +1

    Parabéns pelo conteúdo!
    Sugestão de conteúdo:
    - Trabalhar com API's com criptografia de ponta a ponta;
    - Trabalhar com Jobs

  • @hugoalmeidadevi
    @hugoalmeidadevi 4 ปีที่แล้ว

    Extraordinário, conteúdo de ouro! Muito obrigado Erick!

  • @JonasDiferencial
    @JonasDiferencial 4 ปีที่แล้ว +1

    kkk cheio de pergunta mais a que mais esta me batendo: pq http-server? qual a diferença entre ele e express?

    • @digitalkbr
      @digitalkbr 4 ปีที่แล้ว +2

      O Express usa o http-server, é uma dependência do express. O express adiciona rotas e outros recursos muito usados. Se não for usar o que o express adiciona, pode usar diretamente o http-server.

    • @JonasDiferencial
      @JonasDiferencial 4 ปีที่แล้ว +1

      @@digitalkbr hum... interessante, nao conhecia... pessoal posta tanto sobre o express que nem imaginava que o node tinha um nativo

    • @digitalkbr
      @digitalkbr 4 ปีที่แล้ว +2

      E no lugar do Express, tem outras alternativas também, como Koa, Hapi, FastAPI, mas de fato o Express é o mais usado e atende a maioria dos casos.
      Veja esse link sobre as alternativas:
      www.slant.co/options/1277/alternatives/~express-js-alternatives

    • @ErickWendelAcademy
      @ErickWendelAcademy  4 ปีที่แล้ว

      Sensacional Mauricio, excelentes respostas o/

  • @denislenz4129
    @denislenz4129 4 ปีที่แล้ว

    Conteúdo sempre com muita qualidade!
    Queria saber se essas duas aulas valem pra arquivos realmente grandes (+10GB) e se isso funciona em aws lambdas?

    • @ErickWendelAcademy
      @ErickWendelAcademy  4 ปีที่แล้ว +1

      Opa, vale até para terabytes, a questão não é o tamanho do arquivo porque o browser vai mandar os pedaços dos arquivos. Acho que algo a se preocupar, é com o timeout (quanto tempo um arquivo desse tamanho pode demorar para subir) ai, teria que fazer algo um pouco mais sofisticado, como enviar esses pedaços de arquivos via socket ou via fetch, assim você nao depende do timeout browser.
      Funciona. porque o Busboy só olha para os headers e body da requisicao, você só teria que testar os dados chegando. Mas para Lambdas, talvez seja melhor fazer upload direto ao S3, porque as lambdas devem ser executadas em tempo curto, se você está pensando em 10GB+ então você vai ter várias lambdas concatenando dados no arquivo ao mesmo tempo, não sei bem se o S3 permite fazer isso, tem que testar

    • @denislenz4129
      @denislenz4129 4 ปีที่แล้ว

      @@ErickWendelAcademy o recurso necessário que eu vejo seria o multipart upload API da Amazon para node.js. Eu criaria algumas lambdas para utilização dessa API (create/list/abort). Acho que a minha maior dúvida fica no quanto eu teria q adaptar (ou se eu nem conseguiria aproveitar algo) do código das aulas aqui.

  • @_srhenry
    @_srhenry 4 ปีที่แล้ว +1

    O vídeo acabou qnd tava chegando na parte boa ;-;

    • @ErickWendelAcademy
      @ErickWendelAcademy  4 ปีที่แล้ว +1

      Ahahahaha relaxa! Semana que vem sai a segunda parte com os finalmentes

  • @theluposki5712
    @theluposki5712 4 ปีที่แล้ว

    top de mais..

  • @delfiofrancisco3469
    @delfiofrancisco3469 4 ปีที่แล้ว +1

    puta merda, muito bom

  • @93erickm
    @93erickm 4 ปีที่แล้ว

    Fala xará!
    Normalmente esse tipo de aplicação tende a utilizar serviços de storage terceiros, como S3, principalmente pela complexidade de se manter arquivos em disco.
    Conseguiríamos ter algo parecido em caso de integração com S3?

  • @mauricioromagnoli7820
    @mauricioromagnoli7820 4 ปีที่แล้ว

    Top demias, Erick! Cara, você sempre pede sugestão de vídeo, uma coisa que eu gostaria muito de ver é você desenvolvendo uma API com o framework de Node.js que você mais gosta, utilizando junto o TypeScript. Queria ver como você programa utilizando o TS, eu tenho utilizado em todas as minhas aplicações seja back-end com Node ou front-end com React.

  • @jairoiglesias1989
    @jairoiglesias1989 4 ปีที่แล้ว +1

    Aeeeeeeeeee