使用send_file将zip文件下载到浏览器而不涉及rails服务器

时间:2013-05-05 09:22:20

标签: ruby-on-rails ruby-on-rails-3 amazon-s3

我使用以下代码段允许用户下载zip文件。这里的路径是S3存储桶上的链接。我想确认文件是否会直接从S3下载到浏览器,还是先将其下载到rails服务器&然后从那里流出来?

如果是后者,避免这种情况的最佳方法是什么?

path = "#{file.download_attachment.path}"  
send_file path, :type => 'application/zip',
                :disposition => 'attachment',
                :filename => "#{file.name}.zip"

1 个答案:

答案 0 :(得分:1)

关于这个问题的接受答案:Difference between rails send_data and send_file, with example将解释send_file和send_data之间的区别。

如果您想要流式传输内容,请使用send_data。如果您想发送一个已存在的文件,请使用send_file,这样您的代码似乎可以按您喜欢的方式工作;)