2010-12-28 4 views
6

Ho un'app in Heroku, ho bisogno di un semplice archivio di file per le immagini caricate per questo I utilizzato send_data usando il plugin attachment_fu. Successivamente ho usato la directory tmp/per scrivere questo file e voglio visualizzarlo sul browser, ma questi file non sono visualizzati nel browser. Come posso visualizzare queste immagini sul browser?Come caricare immagini sul server heroku usando il plugin attachment_fu

Qual è la soluzione alternativa per archiviare e recuperare le immagini?

Grazie!

risposta

13

Non è possibile archiviare i file caricati su Heroku.

È necessario utilizzare una strategia alternativa. Un paio di strategie alternative:

  1. Archiviare i file caricati nel database su Heroku. Poiché i sistemi di database non sono specificamente ottimizzati per l'archiviazione dei file, è necessario testare quanto bene l'applicazione esegue sotto carico prima di utilizzare questa strategia.

  2. Archiviare i file caricati in un servizio di archiviazione esterno. Amazon S3 è un popolare servizio di archiviazione su cloud che chiunque può utilizzare e ha un sistema di pagamento a consumo come Heroku. (In realtà, Heroku stessa gira sopra un altro di servizi cloud di Amazon, EC2.)

+0

ho usato database per memorizzare le immagini caricate. Voglio visualizzare queste immagini sul browser, se ho usato pubblico/file per scrivere temporaneamente il file dal database che poi viene visualizzato sul browser. Ma quando ho usato temp/file per scrivere queste immagini non verrà visualizzato sul browser. Perché questo succede? Posso visualizzare immagini da temp/file? – Jayashri

+0

Puoi usare qualcosa come "send_data @ record_with_image.raw_image_data,: type => 'application/png''. Ma su Heroku non puoi archiviare i file permanentemente, né puoi creare file temporanei e quindi servire i file temporanei direttamente all'utente. È necessario eseguire il rendering dei file utilizzando la pila Rack o archiviare i file utilizzando un servizio esterno. – yfeldblum