从 S3 检索文件。 - 载波 Rails Gem

Retrieve file from S3. - Carrierwave Rails Gem

我正在我的 Rails 应用程序中实施带有雾存储的 Carrierwave。这个应用程序的全部目的是存储 pdf 文章,并让任何有权访问该应用程序的人都能够检索它们。现在,我有存储文章 pdf 的功能,效果很好。但是,现在我需要能够从 S3 检索 pdf。这可能吗?我注意到文档中有一个 uploader.retrieve_from_store!("my_file.png") 方法。我试图 运行 在控制台中执行此操作,但出现此错误 NoMethodError: undefined method retrieve_from_store! for ArticleUploader:Class 任何对此的帮助都将非常有用!到目前为止,我还没有找到任何合适的答案。谢谢!

文章上传者

class ArticleUploader < CarrierWave::Uploader::Base

  storage :fog

  def extension_whitelist
    %w(jpg jpeg gif png pdf)
  end

end

文章模型

class Article < ApplicationRecord
  mount_uploader :file, ArticleUploader
  validates :title, presence: :true
  validates :publication_date, presence: :true
  validates :source, presence: :true
end

您可以使用 carrierwave 的方法访问它,在您的情况下:

article = Article.find(1)
article.file.url

如果您在开发中,它将输出 file 的路径,如果您在生产中并使用 S3,它将输出整个 url,例如 http://s3.amazonaws.com/<vendor>/articles/1/file.pdf .

您可以在官方文档中找到更多信息:

https://github.com/carrierwaveuploader/carrierwave#activerecord

http://railscasts.com/episodes/253-carrierwave-file-uploads

上还有一个旧的 rails