Conteúdo original nessa thread do Twitter
Dev,
Outro #desafio pra vc que faz APIs:
Existe um API Gateway que funciona há anos para um serviço crítico. Agora, ele precisa receber uma nova funcionalidade que é upload de imagens.
Veja as premissas no próximo tweet ↓
cc @sseraphini @nenhumrafael
Premissas:
- Existe um hard limit de 10MB para as requisições nesse API Gateway;
- As imagens podem ter mais de 10 megas (não tem como controlar isso).
- Precisa associar a imagem a um cliente;
- Desafios da vida real :)
Se você já passou por isso, conta aí como resolveu :)
Top comments (1)
1 - Endpoint no back-end para gerar URLs temporárias de upload direto pro serviço de storage (aws s3 fornece as presigned urls) + salvar a url gerada com dados do cliente no banco de dados.
2 - Cliente (front-end) recebe a URL e faz a requisição direto pro s3, sem passar pelo back-end o que já economiza processamento e memória.
BÔNUS:
Pra evitar casos que o cliente faz o upload e não termina o formulário, o ideal é ter um worker que roda em background que verifica se a URL já foi usada ou não, caso não tenha sido manda excluir na s3
win win