Sto progettando un sistema in cui gli utenti possono accedere ai file archiviati in un servizio di archiviazione di contenuti esterni come AWS di S3. Ecco un semplice diagramma:
------ ------------ -----------------
| User | <=> | Web Server | <=> | Content Storage |
------ ------------ -----------------
I file sono memorizzati con un ID (lungo) univoco. Sono preoccupato principalmente di due aspetti: prestazioni e sicurezza delle informazioni.
Ci sono due opzioni che mi vengono in mente ma sono sicuro che può essere fatto in un modo migliore (prestazioni e sicurezza):
- Fornire all'utente un url con il quale il file può essere scaricato direttamente dal servizio di archiviazione del contenuto. Contro: l'URL potrebbe essere forzato brutale. Questo potrebbe essere risolto inserendo una password nel file, ma mi piacerebbe usarlo come ultima risorsa.
- Il server Web scarica il file dal servizio di archiviazione del contenuto e lo serve all'utente. Contro: troppo traffico.
C'è un modo per effettuare un reindirizzamento HTTP senza esporre l'URL risolto del file? Qualcosa come il proxy dei pacchetti?
Non voglio rendere questa tecnologia specifica (questo è ciò che SO è per), ma nel caso in cui aggiunge qualsiasi valore, sto usando Rails un server di rotaie dietro nginx. Ho il pieno controllo del server web, ma sono limitato al servizio di archiviazione dei contenuti poiché utilizzo S3.