Cenário: servir um site e uploads de usuário com S3
Pergunta
Você precisa servir os assets estáticos de um site com baixa latência global e também aceitar uploads de arquivo dos usuários, sem passar o upload pelo seu servidor de aplicação. Como monta isso com S3?
Resposta esperada
Assets estáticos: guardar no S3 e servir por trás de um CDN (CloudFront), que faz cache nas bordas pra latência global; o bucket não precisa ser público — usar Origin Access Control pra só o CloudFront ler. Uploads sem passar pelo app: o cliente pede ao seu backend uma URL pré-assinada (presigned URL / presigned POST) com escopo e expiração curtos; o navegador então faz PUT/POST direto no S3 com aquela URL, sem o arquivo tocar seu servidor. O backend só assina e depois registra a chave no banco. Cuidados: limitar tamanho e content-type na policy da URL, CORS no bucket, e processar (validar/redimensionar) de forma assíncrona via evento S3 → Lambda/fila.
Por que perguntam isso
Cenário sênior de AWS. Termo-chave: 'presigned URL'. Bônus: bucket privado com OAC em vez de público, e processamento assíncrono via evento S3.