può Amazon essere utilizzato per scaricare del server di file statici per una Ruby on Rails, ma ancora supportare l'autenticazione e l'autorizzazione del app?

StackOverflow https://stackoverflow.com/questions/1478609

Domanda

Can uno dei servizi di Amazon (il loro servizio dati S3, o altro) da utilizzare per scaricare del server di file statici per una Ruby on Rails, ma ancora supportare l'autenticazione e l'autorizzazione del app?

Questo è tale che quando il browser utente ha scaricato il codice HTML iniziale per una pagina di Ruby on Rails applicazione, quando è andato indietro per i contenuti statici (per esempio un file di immagine o CSS), che questa richiesta potrebbe essere: (A) instradato direttamente al servizio di Amazon (senza cicli RoR utilizzati per servire, o la larghezza di banda), ma (B) la richiesta del browser per questo articolo (ad esempio un'immagine) sarebbe ancora dovuto passare attraverso uno strato di autenticazione / autorizzazione sulla base del modello utente nell'applicazione Ruby on Rails - in altre parole, al fine di garantire non solo che chiunque potrebbe ottenere l'immagine. ..

grazie

È stato utile?

Soluzione

La risposta è un sì con un ma. È possibile utilizzare una funzione di S3 che permette di creare collegamenti per proteggere gli oggetti S3 che ha un piccolo tempo per vivere, di default è di 5 minuti. Ciò funzionerà per qualsiasi oggetto S3 che viene caricato come private. Questo significa che il browser avrà solo X secondi o qualsiasi altra cosa per richiedere il file da S3. Esempio di codice da docs per la gemma AWS:

S3Object.url_for('beluga_baby.jpg', 'marcel_molina')

È inoltre possibile specificare un expires_in oppure scaduta l'opzione per file. La cosa brutta è che si avrebbe bisogno di creare un aiuto per il foglio di stile, immagini e collegamenti JS per creare gli URL corretto S3. Io vi consiglio di impostare un nome di dominio per il secchio S3, come "examples3.amazonaws.com" e mettere tutti i file di immagine standard e CSS lì come pubblico. Quindi impostare che come l'ospite di asset nel vostro rotaie config. Quindi, utilizzare solo i collegamenti sicuri per i file statici che ne hanno davvero bisogno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top