5
Tengo una aplicación que lee el contenido de un archivo y lo indexa. Los estaba almacenando en el disco, pero ahora estoy usando Amazon S3, por lo que el siguiente método ya no funciona.Cómo obtener el archivo real desde S3 usando CarrierWave
fue algo como esto:
def perform(docId)
@document = Document.find(docId)
if @document.file?
#You should't create a new version
@document.versionless do |doc|
@document.file_content = Cloudoc::Extractor.new.extract(@document.file.file)
@document.save
end
end
end
@document.file
devuelve el FileUploader
y doc.file.file
devuelve la clase CarrierWave::Storage::Fog::File
.
¿Cómo puedo obtener el archivo real?
Jacob, de carrierwave google group resuelto con 'open (@ document.file.url)' too –
@ document.file.read es probablemente mejor porque funcionará independientemente del almacenamiento de archivos utilizado, es decir, funciona con el sistema de archivos local y S3. –
.read no funcionó para nosotros (estamos usando cloudinary en combinación con carrierwave) – Tibastral