Upload e Download de Arquivos Grandes para entrevistas — Presigned URLs, S3 e CDN (System Design #5)

Pedro Camaforte2026-07-0829 minutosAvançado
System DesignAWSPerformanceCloud StorageEntrevista de EmpregoArquitetura de Software
Pedro CamaforteConteúdo de propriedade do criador

Descrição original do criador:

Como lidar com arquivos grandes (large files) — upload e download de gigabytes — System Design para entrevistas de empresas tier S e big techs (parte 5 de 7). Presigned URLs, multipart/resumable upload, CDN com URLs assinadas, sincronização de estado com S3 events, e bucket de quarentena. Stack citada: S3, Google Cloud Storage, Azure Blob, CloudFront, Cloudflare, S3 Event Notifications, SQS.

Pedro Camaforte

Sobre o Curso

Este curso aborda estratégias de System Design para lidar com o upload e download de arquivos de grande porte (gigabytes) em sistemas distribuídos. É focado em preparar para entrevistas de engenharia de software em empresas de tecnologia de ponta, explorando soluções como Presigned URLs, S3 e CDNs, e as melhores práticas para sistemas escaláveis.

O que você vai aprender

  • Entender os desafios do upload e download de arquivos grandes em sistemas distribuídos.
  • Soluções para evitar salvar arquivos diretamente no servidor ou banco de dados.
  • Conceitos de Object Storage (BLOB Storage) e como Amazon S3 funciona.
  • Implementação de uploads e downloads seguros usando URLs Pré-assinadas (Presigned URLs).
  • Como realizar Multipart Uploads para arquivos muito grandes e retomar uploads.
  • Otimização de custos e latência para downloads utilizando CDNs como Amazon CloudFront.
  • Lidando com edge cases durante o processo de upload.
  • Um framework de decisão para escolher a melhor abordagem para uploads e downloads.
  • Principais erros cometidos e como mitigá-los, incluindo o uso de buckets de quarentena.
  • Sincronização de estado com S3 Event Notifications.
  • Tecnologias abordadas: S3, Google Cloud Storage, Azure Blob, CloudFront, Cloudflare, SQS.

Pré-requisitos

  • Conhecimento básico de arquitetura de software e sistemas distribuídos.
  • Familiaridade com conceitos de computação em nuvem (Cloud Computing).
  • Entendimento de APIs e comunicação HTTP.
  • Interesse em System Design e preparação para entrevistas técnicas de alto nível.

Para quem é este curso

  • Engenheiros de software que buscam aprofundar seus conhecimentos em System Design.
  • Profissionais se preparando para entrevistas de System Design em empresas de tecnologia de ponta (Big Techs).
  • Desenvolvedores interessados em construir e entender soluções escaláveis para manipulação de arquivos grandes em ambientes de nuvem.