Ho attivato un'applicazione di esempio che utilizza Amazon S3 per l'hosting di immagini. Sono riuscito a convincerlo a lavorare. L'applicazione è ospitata allo github.com. L'applicazione consente di creare utenti con una foto del profilo. Quando carichi la foto, l'applicazione web la memorizza su Amazon S3 anziché sul tuo file system locale. (Molto importante se ospiti a heroku.com)Come rendere le immagini ospitate su Amazon S3 meno pubbliche ma non completamente private?
Tuttavia, quando ho fatto una "vista sorgente" nel browser della pagina ho notato che l'URL dell'immagine era un URL Amazon S3 nel bucket S3 che ho assegnato a l'applicazione. Ho tagliato & incollato l'URL ed è stato in grado di visualizzare l'immagine nello stesso browser e in un altro browser in cui non ho avuto sessioni aperte sulla mia app Web o su Amazon S3.
Esiste un modo per limitare l'accesso a tale URL (e immagine) in modo che sia accessibile solo ai browser registrati nelle mie applicazioni?
La maggior parte delle informazioni che ho trovato sugli ACL Amazon parlano solo dell'accesso solo per il proprietario o per gruppi di utenti autenticati con Amazon o AmazonS3 o per tutti in modo anonimo.
EDIT ---- UPDATE 7 luglio, 2010
Amazon ha just announced più modi per limitare l'accesso agli oggetti S3 e secchi. Tra gli altri modi, ora puoi limitare l'accesso a un oggetto S3 qualificando il referrer HTTP. Sembra interessante ... Non vedo l'ora di aggiornare i loro documenti di sviluppo.
@Justice - Grazie per una risposta completa e ben motivata. È esattamente il ragionamento di cui avevo bisogno per usare S3. Le risorse memorizzate su S3 non sono super-critiche per quanto riguarda la privacy, e gli URL sono disponibili solo per gli utenti che hanno effettuato l'accesso. Suppongo di dover fare un qualche tipo di hash salato per generare il numero casuale. –
+1 uno per i punti logici. Anche la generazione di un nuovo URL randomizzato per ogni aggiornamento alla risorsa è importante. –