论坛首页 编程语言技术论坛

RoR网站如何利用lighttpd的X-sendfile功能提升文件下载性能

浏览 22057 次
该帖已经被评为精华帖
作者 正文
   发表时间:2008-12-11  
robbin 写道
frogxj 写道

不知道为什么,我用的是rails 2.0.2,根据robbin的写法修改了rails的BUG,但是虽然在下载时正确显示了文件的大小,但下载下来还是1KB,如果去掉BUG的修正,下载时显示的就是1KB,显示BUG修正起作用啦,不知robbin能否指导一下,先谢谢啦!


rails新版本已经修复了bug,不再需要补丁了。

没有,如果不使用您提供的Bug fix,在下载时显示文件的信息就不对,无论什么文件都显示大小为1K,如果使用了Bug fix,下载前显示对了,但下载结果是1K,我也查了response.rb文件的内容,显示如下:
      # Don't set the Content-Length for block-based bodies as that would mean reading it all into memory. Not nice
      # for, say, a 2GB streaming file.
      def set_content_length!
        self.headers["Content-Length"] = body.size unless body.respond_to?(:call)
      end
好象还没有修正BUG,我使用的Rails版本为2.0.2,lighttpd的版本是1.4.19,真让人郁闷!
0 请登录后投票
   发表时间:2008-12-12  
问题解决了,主要是在response.headers["X-LIGHTTPD-send-file"] = @attachment.public_filename这一行,public_filename只给出了文件的相对路径,而lighttpd4.19好像不会把相对路径加上应用的主目录而得到文件的全部路径而出现错误。另外,rails2.0.2确实修正了Bug,谢谢robbin!
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics