2012-08-11 17 views
5

kullanarak S3 gerçek dosya nasıl edinilir Bir dosyanın içeriğini okur ve onu dizinleyen bir uygulama var. Onları diskte saklıyordum, ama şimdi Amazon S3 kullanıyorum, bu yüzden aşağıdaki yöntem artık işe yaramıyor.CarrierWave

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.fileFileUploader döndürür ve doc.file.fileCarrierWave::Storage::Fog::File sınıfını döndürür:

Böyle bir şeydi.

Gerçek dosyayı nasıl alabilirim?

cevap

9

@document.file.read'un aranması, dosya içeriğinin S3 in Carrierwave dosyasındaki içeriğini alır.

+1

Jacob, “open (@ document.file.url)” ile çözülmüş google grubundan da “ –

+1

@ document.file.read” dosya depolama alanı ne olursa olsun işe yarayacaktır, çünkü her ikisi de yerel dosya sistemiyle çalışır ve S3. –

+0

.read bizim için çalışmadı (carrierwave ile birlikte cloudinary kullanıyoruz) – Tibastral

İlgili konular