Ho ottenuto la mia applicazione scritta in Flask (Python 3.6) e in esecuzione su EB.
Ho bisogno di implementare un content editor che permetta di caricare file sul server e vorrei memorizzarli su s3. La maggior parte dei file caricati sarà disponibile dopo il login nella mia app.
La domanda è come gestire la sicurezza di tali file?
Devo usare la mia applicazione come middleware e controllare se l'utente è loggato e se sì, quindi scaricare il file da S3 nel mio backend e restituirlo all'utente come risposta standard di Flask?
O un'idea migliore è quella di generare gli URL con la data di scadenza preselezionata?
Il problema con gli URL preselezionati è che perderò il caching del browser per i miei file, cosa che vorrei conservare (la maggior parte dei file sono immagini, quindi non è necessario scaricarlo nuovamente ogni volta).
Anche il secondo problema è che questo url non è in alcun modo vincolante con l'utente che ha effettuato l'accesso alla mia app, quindi in pratica questo url preselezionato può essere utilizzato da chiunque fino alla sua scadenza.
In questo momento ho implementato il codice legacy in prima persona: