我使用以下代码段允许用户下载zip文件。这里的路径是S3存储桶上的链接。我想确认文件是否会直接从S3下载到浏览器,还是先将其下载到rails服务器&然后从那里流出来?
如果是后者,避免这种情况的最佳方法是什么?
path = "#{file.download_attachment.path}"
send_file path, :type => 'application/zip',
:disposition => 'attachment',
:filename => "#{file.name}.zip"
答案 0 :(得分:1)
关于这个问题的接受答案:Difference between rails send_data and send_file, with example将解释send_file和send_data之间的区别。
如果您想要流式传输内容,请使用send_data。如果您想发送一个已存在的文件,请使用send_file,这样您的代码似乎可以按您喜欢的方式工作;)