【发布时间】:2011-12-19 22:41:54
【问题描述】:
我正在开发一个项目,我必须向用户提供存储在 s3 中的文件的下载链接。一开始我试过了,
link_to "Download", @medium.file.url
但这会直接在浏览器上打开文件。当我尝试下载 mp4 文件时,chrome 开始自动播放。我不希望这种情况发生。所以我使用 send_file 来完成这项任务,
def download
@medium = Medium.find(params[:id])
send_file @medium.file.url
end
在我的本地,我已将存储设置为文件,并且我已经对此进行了测试,效果非常好。但是在暂存时,文件是从 s3 提供的,我总是得到 ActionController::MissingFile。我的应用程序托管在 heroku 上。我还想知道使用 send_file 是否是不错的选择,或者是否有更好的方法。
config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect'
当我在谷歌上搜索时,我发现应该为生产启用用于发送文件的 nginx 标头设置。我在 config/environments/production.rb 中添加了以下行。仍然没有运气。我需要一些帮助。谢谢。
【问题讨论】:
标签: ruby-on-rails ruby