Considera un social network in cui è necessaria una foto utente in diverse risoluzioni large / small / medium ecc.
Quando la foto viene caricata, non voglio che l'utente attenda troppo a lungo per l'immagine da elaborare e i diversi URL per ogni dimensione da restituire.
Voglio solo restituire l'url di base ex domain.com/images/something.jpg Quindi, quando il frontend richiede domain.com/images/something.jpg?s=large, generano l'immagine grande, la memorizzi nel cache e restituiscilo sempre.
Il problema che non riesco a capire con l'approccio sopra è che non posso più usare s3 senza il doppio trasferimento dei dati.
Per prima cosa ho bisogno di trasferire i dati da s3 - > server di backend quindi dal server back-end - > frontend.
Se vado con la soluzione che non mi piace, frontend attende più a lungo il backend per generare tutte le dimensioni dell'immagine e restituire tutti gli URL, quindi è necessario eseguire un solo trasferimento, da s3 a frontend.
Ho anche pensato ad un'altra possibile soluzione che il backend restituisca gli URL senza che l'immagine sia disponibile, ad esempio:
[
large: domain.com/dd.jpg?s=large
small: domain.com/dd.jpg?s=small
]
Quindi quando il frontend chiama ad esempio il piccolo url, se non esiste prima viene generato, quindi memorizzato in s3 quindi backend restituisce il reindirizzamento 302 all'url s3. Penso che questo approccio non funzionerà a causa di molti reindirizzamenti 302, ma offre la flessibilità che voglio.
Sto ancora cercando di capire come risolvere il problema. Qualche suggerimento per favore?