我有一个项目,用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
答案 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