8

Sto utilizzando CarrierWave e Fog per archiviare gli allegati su un modello ActiveRecord su S3. Posso usarli per generare l'URL, ma non riesco a trovare alcun metodo per leggere effettivamente un file.C'è un modo per leggere un oggetto file usando Fog e CarrierWave?

È questo qualcosa che la gemma di nebbia potrebbe anche fare, o devo usare la gemma S3 per quello?

risposta

20

È possibile utilizzare il metodo read sull'oggetto uploader. Se abbiamo un modello chiamato MyModel che ha un campo chiamato attachment che è stato aggiunto con il metodo del CarrierWave mount_uploader, siamo in grado di effettuare le seguenti operazioni:

obj = MyModel.first 
contents = obj.attachment.read 

In questo modo ottenere il contenuto effettivo del file. Controlla this doc.

+0

SUPER, funziona proprio come dici tu. Grazie! – AKWF

+0

Definitivamente migliore +1 – apneadiving

+1

No, questo * non * funziona su file memorizzati localmente con un set local_root. – AKWF

3

Basta richiedono open-uri

require 'open-uri' 
file_contents = open(string_url) {|f| f.read } 
Problemi correlati