我使用CarrierWave和Fog将附件存储到S3上的ActiveRecord模型。我可以使用它们来生成URL,但我似乎找不到任何方法来实际读取文件。
这是Fog gem甚至会做的事情,还是我需要使用S3 gem呢?
答案 0 :(得分:23)
您可以在上传器对象上使用read
方法。如果我们有一个名为MyModel的模型,其中有一个名为attachment
的字段,它是使用CarrierWave的mount_uploader
方法添加的,我们可以执行以下操作:
obj = MyModel.first
contents = obj.attachment.read
这将获得文件的实际内容。查看this doc。
答案 1 :(得分:3)
您只需要open-uri
require 'open-uri'
file_contents = open(string_url) {|f| f.read }