如何使用s3使用Rails 4 Paperclip下载文件

时间:2015-06-18 21:51:30

标签: ruby-on-rails-4 amazon-s3 paperclip

我有一个项目,用paperclip和s3上传文件附件。如何让用户下载这些文件。

模型

class Assets
  has_attached_file :file
end

路线

resources :assets do
  member do
    get 'download'
  end
end

控制器

  def download
    data = open(@asset.file.url)
    send_data data.read, :type => data.content_type, :x_sendfile => true, :url_based_filename => true
  end

错误:

AssetsController中的OpenURI :: HTTPError #download

403 Forbidden

1 个答案:

答案 0 :(得分:0)

我找到了解决此问题的方法here

答案:

def download
  extension = File.extname(@asset.file_file_name)
  send_data open("#{@asset.file.expiring_url(10000, :original)}").read, filename: "original_#{@asset.id}#{extension}", type: @asset.file_content_type
end