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

标签 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::文件类。

如何获取真实文件?

最佳答案

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

关于ruby - 如何使用 CarrierWave 从 S3 获取真实文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11917027/

相关文章:

ruby-on-rails - ActiveRecord 自定义字段方法

ruby-on-rails - 为什么 simple_form 用所有 comment_titles 填充这些选择列表?

ruby-on-rails - 在代码中使用 sed

javascript - 使用 Ajax 请求(无 PHP)使用 HTML、javascript 和 jQuery 将图像上传到 Amazon s3

node.js - 从 AWS S3 Select 获取单个记录时获取 OverMaxRecordSize?

ruby-on-rails - Rails - 将集合传递给 will_paginate 的布局?

ruby-on-rails - Rails,包括 json 渲染中的关系

ruby-on-rails - 在用 Ruby 和 C 编写的应用程序之间共享常量的方法?

ruby-on-rails-3 - Ruby - jiraSOAP - 关闭 OpenSSL 证书验证

php - S3 在上传时设置 MIME 类型