如何使用CarrierWave从S3获取真实文件

时间:2012-08-11 19:29:55

标签: ruby ruby-on-rails-3 amazon-s3 carrierwave

我有一个应用程序,它读取文件的内容并为其编制索引。我将它们存储在磁盘本身,但现在我正在使用Amazon S3,因此以下方法不再起作用。

这是这样的:

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返回FileUploaderdoc.file.file返回CarrierWave::Storage::Fog::File类。

如何获取真实文件?

1 个答案:

答案 0 :(得分:9)

调用@document.file.read将从Carrierwave中的S3获取该文件的内容。