-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
First implementation of serve_thumb.py #1
base: main
Are you sure you want to change the base?
Conversation
Bro como tá isso aqui? resolveu a parada de lentidão? |
@lucca65 continuei tentando implementar a função e fiquei recebendo um erro. Descobri que não é possível fazer o que estávamos tentando fazer com essa função. Pela documentação da AWS:
Ou seja, não conseguimos ter acesso ao body da resposta do servidor e não somos capazes de modificá-la. Então acho que pra essa funcionalidade vai ter que ser buscada uma outra solução. Mas uma coisa que podemos aproveitar disso tudo é a distribuição de imagens pelo cloudfront, que parece estar funcionando certinho. |
Não devo estar entendendo alguma coisa, pois nosso objetivo não é modificar o body. É salvar versões menores das imagens para que possamos servi-las pelo nosso backend. Se com o lambda conseguimos salvar imagens em formatos menores ou diferentes, isso basta. Resolvemos a outra parte do problema pedindo pela imagem apropriada lá no backend |
Então vai ter que ser uma implementação diferente dessa do python que estamos desenvolvendo. O problema atual é quando gerar essa segunda imagem. Essa implementação depende do backend pegar a imagem certa e quando ele envia a resposta HTTPS é que a função Lambda gera a imagem menor (se necessário) e substitui ela na resposta. Pra adaptar podemos fazer o que falasse. Fazemos o backend sempre pedir as imagens de rich links pelo cloudfront ao invés do S3 e daí o Lambda se preocupa em garantir que a imagem existe. Seria necessário alterar o HTML que é servido pra substituir algo como "https://cambiatus-uploads.s3.amazonaws.com/cambiatus-uploads/foo" para "https://cambiatus-uploads.cloudfront.amazonaws.com/cambiatus-uploads/foo", o que não me parece um problema. Outra opção é gerar essa segunda imagem quando é feito o upload da primeira. Daí pras imagens que já estão no bucket fazemos um script para gerar as thumbs. Acho que essa alternativa faria mais sentido se implementada direto no backend. Quem sabe podemos adicionar um check no user-agent pela função Lambda também. Dessa maneira podemos tentar fazer a distribuição de todos os arquivos da Cambiatus pelo CloudFront, só seria necessário requisitar as imagens pelo cloudfront mesmo. |
+1 bro! |
Sobre isso, é uma feature interessante de backend, mas acho melhor a gente não estender mais as tarefas de Cambiatus por hora! |
bro tirei meu review request pra parar com as notificações no slack, me add de novo quando for pertinente bro! |
closes #2
Create the first lambda function of this repository.
This function is responsible to serve the correct image for rich_link previews.
The function should:
This function is to be triggered when the response is being from our server to a cloudfront distribution. The HTTPS response from the server is intercepted and modified to include the correct image.