ruby - 如何通过 Rack 提供二进制文件?

标签 ruby file rack

我觉得我在这里有点傻,但我不断收到错误,提示 env 散列中缺少 SERVER_NAME key ,而且我找不到任何关于 Rack::SendFile 的实质性文档..

那么 - 我该如何提供文件?

最佳答案

如果您提供大文件下载,我建议让网络服务器提供大数据。这样,您就不会浪费宝贵的资源来运行您的 Rack 应用程序,而只是为了让用户进行冗长的下载。

如果您使用特殊的 Header 进行响应(X-Sendfile 用于 Apache,X-Accel-Redirect 用于 Nginx),网络服务器将使用给定文件的内容作为响应的主体。这样,您的 Rack 应用程序就可以为下一个请求做好准备,同时网络服务器负责将数据发送给用户的冗长过程。您可能需要先为您的网络服务器启用此功能。

关于ruby - 如何通过 Rack 提供二进制文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2782663/

相关文章:

ruby-on-rails - 如何重新定义 ruby​​ 和 rails request.ip 和 request.remote_ip 方法?

ruby-on-rails - 如何将枚举作为字符串存储到 Rails 中的数据库

ruby-on-rails - 如何使用 Ruby on Rails 纠正 Nokogiri 的加载错误?

Ruby Sinatra - 在 mongoHQ 上连接到 mongoDB 失败

Java - 如何使用 FileUtils move 文件?

Java:字符串拆分为多个元素

linux - 清除文件而不更改其时间戳

ruby-on-rails - Rails 自定义验证器 : Testing options

javascript - CORS DELETE 失败并显示 403 状态代码