Upload AWS Serverless | Subindo arquivos com AWS Lambda - Aula 18 - #72

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

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

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

    🍀 Seu apoio é crucial para mantermos o canal independente e continuarmos a produzir os conteúdos com a qualidade que você já conhece: pix@uminventorqualquer.com.br
    ⚜ Curso Cloud Computing Premium: www.cloudstorm.academy/
    💬 Comunidade Cloud no Discord: www.cloudstorm.club/
    📝Aprenda inglês na Cambly: www.cambly.com/invite/INVENTOR?st=022722&sc=4

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

    Galera, não esqueçam de compartilhar esse vídeo com sua equipe de trabalho, faculdade ou dos projetos que você está participando, é só assim que mais pessoas a sua volta vão aprender AWS com você e todos terão assuntos em comum para estudarem juntos e crescerem muito mais rápido.

  • @riemi2009
    @riemi2009 2 ปีที่แล้ว +1

    Bem, eu pausei o vídeo para dizer que essas pausas no vídeos são muito mais do que simples pausas, da uma sensação boa de participação, interatividade, torna muito mais que um vídeo e sim uma aula, melhor que minha faculdade, que nem vou dizer qual foi a unip que eu fiz. perfeito, Obrigado, Obrigado.

    • @GaragemDoInventor
      @GaragemDoInventor  2 ปีที่แล้ว +1

      Obrigado Ricardo a idéia é essa, ajudar as pessoas as absorver melhor as informações, fico feliz de você ter gostado

  • @riemi2009
    @riemi2009 2 ปีที่แล้ว +1

    Pelo amor de deus, gostaria de pedir perdão por não conhecer esse canal antes! incrível obrigado pelas informações

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

      hehehe, não tem que pedir perdão de nada, fico feliz que tenha nos encontrado, espero que possa nos ajudar compartilhando o nosso conteúdo para que mais pessoas possam aprender com ele.

  • @rodolpho_santos
    @rodolpho_santos 2 ปีที่แล้ว +1

    Nossa, ajudou demais!
    Muito bom o conteúdo do vídeo e do seu canal. Está ajudando demais a clarear um pouco os conceitos da AWS.
    Agradecido!

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

    Uma dica de vídeo pra você, é mostrar um pouco da Oracle Cloud que não chega nem aos pés de uma AWS em relação a estrutura mas tem um plano always free que permite você brincar bastante na hora de aprender, e ajudar muito quem precisa testar algumas coisas, eu sempre subo lá meus servidores pra testar minhas aplicações antes de colocar em produção, abraço e muito sucesso

    • @GaragemDoInventor
      @GaragemDoInventor  2 ปีที่แล้ว +1

      Ótima dica, ainda não tive tempo de experimentar o Oracle Cloud, preciso brincar lá para pegar experiência e trazer pro canal, valeu!

  • @samuelalmeida9174
    @samuelalmeida9174 2 ปีที่แล้ว +1

    Canal maravilhoso, se você aceitar sugestões de tema. Gostaria de sugerir vídeos de system design. Sua didática é excelente, parabéns!

    • @GaragemDoInventor
      @GaragemDoInventor  2 ปีที่แล้ว +1

      Oi Samuel, com certeza aceito sugestões, e adoro o tema, acabo falando um pouco sobre system design nos vídeos mas ainda não parei para pensar uma série só sobre o assunto, mas vou colocar na lista porque vai ser muito legal falar sobre isso. Obrigado pelos elogios e por curtir o canal 👍

    • @samuelalmeida9174
      @samuelalmeida9174 2 ปีที่แล้ว +1

      @@GaragemDoInventor Sério mesmo, não lembro a última vez que fiquei tão empolgado maratonando vídeos em canais de tecnologia. Obrigado por compartilhar seu conhecimento.

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

      🙏

  • @fabriziotofanelli
    @fabriziotofanelli 2 ปีที่แล้ว +1

    conteúdo feroz demais!!! parabéns por nos trazer esta série super bala =)

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

      Eu que agradeço por acompanhar nosso canal Fabrizio

  • @felippesouza4239
    @felippesouza4239 2 ปีที่แล้ว +1

    CARAMBA, eu tava no caminho certo então! Ví esse seu vídeo que não é uma boa ideia fazer upload pro backend pra depois fazer upload pro S3. Eu fiz o upload diretamente pelo ReactJS, mas as credenciais da AWS eu tava colocando lá e isso é um problema né. Vou ver esse vídeo até o fim, achei interesantíssimo!

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

      Show Felippe, espero que o vídeo tenha lhe ajudado a tornar sua solução mais segura. Abs

  • @Renat0Pachec000
    @Renat0Pachec000 9 หลายเดือนก่อน

    Eu fiz esse exemplo só que me c#, e vai para o S3, mas fica protegido, ele não exibe. Eu baixei o arquivo, olhei as propriedade, e nas propriedades de conteúdo, que deveria estra protegido com valor não, está vazio. Se eu fizer upload do mesmo arquivo, mas pela interface da AWS, exibe normalmente, e quando baixo o arquivo e verifico as propriedades está como esperado. Só quando usa u URL assinada está com problema.

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

    muito bom o conteúdo, conseguir aprender bastante, mas eu estou com um problema que é quando eu pego o arquivo no s3 vem uma ReadableStream e não estou conseguindo baixar o arquivo pelo react, no node funciona usando o Buffer, mas no react não estou encontrando como fazer o mesmo processo, poderia me ajudar?

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

      Gustavo, se você está recebendo um ReadableStream eu presumo que você esteja usando o SDK no frontend, eu não recomendaria fazer isso por expor as chaves. No caso de consumir no frontend eu recomendaria habilitar o modo de leitura pública do bucket. No caso de alterações eu recomendo fazer isso somente a partir do backend.

  • @claudineialbuquerque4775
    @claudineialbuquerque4775 2 ปีที่แล้ว +1

    Otimo conteudo! Estou iniciano em AWS, mas gostaria de saber se é possivel exportar uma consulta do SQL Server para um bucket? Se sim, você teria algum video de exemplo? O banco precisa está no RDS ?

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

      Claudilei, você pode salvar literalmente qualquer tipo de arquivo no S3

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

    Muito bom!!!
    Só fiquei com uma dúvida.
    Se para cada arquivo que subir é criado um chave, esse modelo atenderia bem se eu precisar subir umas lista de arquivos?
    Seria possível utilizar a mesma chave para vários arquivos e melhorar a performance um pouco?

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

      Vagner, há inúmeras maneiras diferentes de melhorar a performance para uma lista. Eu pessoalmente preferiria gerar a lista de chaves de uma única vez através da minha API e então subir os arquivos com um gerenciador de upload no browser para paralelizar os uploads. Se forem muito arquivo pequenos eu faria todos subirem zipados e faria uma tela para o usuário organizá-los depois de subir. Se forem arquivos grandes eu colocaria eles em uma fila de upload (plugin JS) pois a conexão do usuário pode não aguentar paralelizar. Enfim, tem muitas formas de acelerar e manter a segurança dos dados ao mesmo tempo. Espero ter ajudado

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

      @@GaragemDoInventor ajudou muito!!!
      Muito obrigado.
      Dentre os canais de Devops que tem no TH-cam, o seu é sem dúvida o melhor, ja indiquei pra bastante gente.
      Parabéns.

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

      Muito Obrigado Vagner!🙏

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

    como eu faria esse fluxo, mas para o kinesis stream > firehouse > S3?

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

    Olá tudo bem? Seria possível e conveniente criar uma chave para a aplicação fazer o upload, da mesma forma que criou a chave para processar o download do arquivo?

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

      Marcio, entra na nossa comunidade Cloud lá tem uma galera pra trocar ideias e se ajudar cloudstorm.club/

  • @Giliardmast
    @Giliardmast 2 ปีที่แล้ว +1

    Quanto tento rodar o código em localhost:3000 numa aplicação nextjs da erro " has been blocked by CORS policy: No 'Access-Control-Allow-Origin " ja fiz de tudo e o erro persiste

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

      Giliard, o CORS diz que você está fazendo uma requisição com um domínio diferente do que o servidor espera. No S3 você consegue habilitar seu domínio ou liberar todos, busque no google por "AWS S3 CORS configuration" e vai achar vários exemplos

  • @waragaocruz
    @waragaocruz 2 ปีที่แล้ว +1

    Muito Bom!

  • @pedrosantos1338
    @pedrosantos1338 2 ปีที่แล้ว +1

    Bom dia, muito bom o conteúdo. Uma duvida, qual a vantagem em deixar esse gerador do pre-signed URL em uma função lambda? Claro além da escalabilidade. Não seria viável deixar esse gerador dentro da própria API para conseguir fazer validações? Por que, o problema principal a ser resolvido seria ter maior controle de banda que entra na API e não esgargalar a mesma. Mas seria um gargalo grande colocar essa função na API? Eu estava utilizando lambdas para processar as imagens.

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

      Ótima questão Pedro. A principal delas além da escalabilidade, é separar códigos não essenciais ou que não dependam de regras de negócios complexas, assim você simplifica sua API e diminui a incidência de deploys com ajustes que não afetam a regra de negócio em si, reduzindo o risco de bugs por tabela. Mas sim, você pode colocá-la dentro da sua API sem problema algum, mas, se for só pela validação, você também pode usar a função lambda para fazer uma chamada para sua API só pra validar, a vantagem dessa abordagem é que se alguém estiver tentando te sacanear com um bot por exemplo, você pode fazer pré-validações antes mesmo de bater na sua API e evitar que ela fique instável durante o ataque.
      Se ficou confusa minha explicação me avise que tento explicar de outra forma.

    • @pedrosantos1338
      @pedrosantos1338 2 ปีที่แล้ว +1

      Ok, entendi. Muito obrigado! Você pretende trazer algum conteúdo sobre nignx? Como a maneira certa de utilizar ele em uma infra com loadbalance igual da playlist de AWS. Alem como configurar de maneira correta. Eu sempre me perco em saber qual configuração é minimamente suficiente. Kkkk. Mas obrigado pela resposta!

    • @GaragemDoInventor
      @GaragemDoInventor  2 ปีที่แล้ว +1

      Sim NGinx é uma das principais ferramentas que eu uso em grandes projetos além do Kong que também é baseado no NGinx, quero trazer mais conteúdo sobre isso com certeza

  • @skylevelmusic6634
    @skylevelmusic6634 2 ปีที่แล้ว +1

    Que qualidade 👏👏, sempre muito bom seus conteúdos, Parabéns, eu só fiquei com algumas dúvidas, essa função lambda existe apenas pra gerar essa url temporária? Todo o processo de upload é realizado diretamente pela s3? Porque incluir na própria api? E imagino que pode acabar ficando caro se houver um fluxo constante de requisições nessa função

    • @GaragemDoInventor
      @GaragemDoInventor  2 ปีที่แล้ว +1

      SkyLevel, você tem 1 milhão de segundos de requisições por mês grátis, claro, proporcional à quantidade de memória utilizada. Você pode fazer essa mesma chamada pela pre-signed url de dentro da sua API sem problemas, mas o objetivo foi demonstrar que é possível fazer isso completamente independente da sua estrutura principal, e usar esse recurso como serverless mesmo que sua aplicação seja monolítica.
      Obrigado por acompanhar o canal, é sempre um prazer responder seus comentários 🤝

    • @skylevelmusic6634
      @skylevelmusic6634 2 ปีที่แล้ว +1

      @@GaragemDoInventor Entendi, agradeço bastante tanto pelo vídeo quanto pela resposta, eu acabo muitas vezes preferindo reutilizar a mesma estrutura e criar algumas rotas a mais para não tornar a precificação mais complexa

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

    ENtão você recomendaria criar 2 buckets, um temporário para receber o objeto do front-end e outro definitivo e no intermedio desses dois, uma função lambda que faz essa ponte entre os objetos do bucket temporario pro definitivo?

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

    uma pergunta sobre o fluxo, no cliente (browser) o usuario preenche o formulario com a imagem e manda para a API do back-end, a api do back-end manda o arquivo pro lambda que sobe pro s3? ou o cliente manda direto pro lambda?

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

      Na verdade, o usuário vai solicitar a url assinada para o lambda, com ela ele envia o arquivo direto para o S3, e a única coisa que ele manda pra sua API é o nome do arquivo que foi salvo no S3 para que sua API possa processá-lo, ou move-lo

  • @mrbim1000
    @mrbim1000 2 ปีที่แล้ว +1

    Como seria se fosse fazer upload de vários arquivos, pq a rota só aceita um arquivo porque o Key é único, se a cada arquivo que for subir tiver que fazer uma chamada para lambda entregar uma rota diferente caio no mesmo problema de um múltiplas threads!?

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

      Oi David, Você pode modificar a função para te retornar quantos token vc precisar em uma única chamada. E não, você não cai no mesmo problema, na verdade é aí que você se livra de uma grande problema, passando toda a responsabilidade de gerir multiplas conexões de upload paralelas para o S3 ao invés de travar essas threads no seu servidor http ;)

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

      @@GaragemDoInventor Realmente acabei de implementar uma funcionalidade com Reactjs e python no back-end onde preciso subir grandes quantidade de imagens, fiz um loop requisitando uma key diferente para cada imagem e rodou liso, fiz um teste com 560 imagens e foram salvas em menos de 18 segundo, abraços Inventor excelente conteúdo me salvou.

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

      Caso o pessoal queira ver como ficou posso disponibilizar um código semelhante no github.

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

    Não sei se é pelo tempo de publicação do video, mas agora não rola desta forma.