Hi everyone, I try to use the "X-Sendfile" header, but it doesn''t work as expected. In my controller: path = "/home/bruno/file.tar.gz" headers[''X-Sendfile''] = path headers[''Content-Type''] = "application/octet-stream" headers[''Content-Length''] = File.size(path) render :nothing => true When I request the file, nothing is shown, just a white page. If I do a HEAD request: HTTP/1.1 200 OK Connection: close Date: Thu, 25 Jan 2007 11:22:19 GMT Status: 200 OK X-Sendfile: /home/bruno/file.tar.gz Cache-Control: no-cache Server: Mongrel 1.0.1 Content-Type: application/force-download; charset=utf-8 Content-Length: 1 The weird thing is the content-length is bad and I think mongrel should not show the X-Sendfile header. I also tried to add the content-disposition header but didn''t resolve the problem. I''m using edge rails and the latest mongrel (I deleted older mongrels) Thank you.
On Thursday 25 January 2007 4:38 am, Bruno Celeste wrote:> Hi everyone, > > > I try to use the "X-Sendfile" header, but it doesn''t work as expected. > > In my controller: > > path = "/home/bruno/file.tar.gz" > headers[''X-Sendfile''] = path > headers[''Content-Type''] = "application/octet-stream" > headers[''Content-Length''] = File.size(path) > render :nothing => true > > When I request the file, nothing is shown, just a white page. If I do > a HEAD request: > > HTTP/1.1 200 OK > Connection: close > Date: Thu, 25 Jan 2007 11:22:19 GMT > Status: 200 OK > X-Sendfile: /home/bruno/file.tar.gz > Cache-Control: no-cache > Server: Mongrel 1.0.1 > Content-Type: application/force-download; charset=utf-8 > Content-Length: 1 > > The weird thing is the content-length is bad and I think mongrel > should not show the X-Sendfile header. I also tried to add the > content-disposition header but didn''t resolve the problem. > > I''m using edge rails and the latest mongrel (I deleted older mongrels) > > > Thank you.X-Sendfile is handled by Apache, or Lighty, etc. If you are just accessing mongrel directly, then what you are seeing is correct. If you are accessing mongrel via apache, or some other webserver, then it''s handling of X-Sendfile is not setup properly. Scott Brooks
Thank you Scott. I''m accessing mongrel directly but I thought that mongrel can use X-Sendfile without needing another webserver. Parkplace (a camping app) uses X-Sendfile via mongrel, so I don''t understand. Is it possible to do the same thing with rails? On 1/25/07, Scott Brooks <scott at hermitworksentertainment.com> wrote:> On Thursday 25 January 2007 4:38 am, Bruno Celeste wrote: > > Hi everyone, > > > > > > I try to use the "X-Sendfile" header, but it doesn''t work as expected. > > > > In my controller: > > > > path = "/home/bruno/file.tar.gz" > > headers[''X-Sendfile''] = path > > headers[''Content-Type''] = "application/octet-stream" > > headers[''Content-Length''] = File.size(path) > > render :nothing => true > > > > When I request the file, nothing is shown, just a white page. If I do > > a HEAD request: > > > > HTTP/1.1 200 OK > > Connection: close > > Date: Thu, 25 Jan 2007 11:22:19 GMT > > Status: 200 OK > > X-Sendfile: /home/bruno/file.tar.gz > > Cache-Control: no-cache > > Server: Mongrel 1.0.1 > > Content-Type: application/force-download; charset=utf-8 > > Content-Length: 1 > > > > The weird thing is the content-length is bad and I think mongrel > > should not show the X-Sendfile header. I also tried to add the > > content-disposition header but didn''t resolve the problem. > > > > I''m using edge rails and the latest mongrel (I deleted older mongrels) > > > > > > Thank you. > > X-Sendfile is handled by Apache, or Lighty, etc. If you are just accessing > mongrel directly, then what you are seeing is correct. If you are accessing > mongrel via apache, or some other webserver, then it''s handling of X-Sendfile > is not setup properly. > > Scott Brooks > _______________________________________________ > Mongrel-users mailing list > Mongrel-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/mongrel-users >
I had a quick look through lib/mongrel/camping.rb and it looks like there is some code in the camping handler in order to handle X-Senfile. The rails handler does not have the same code, so that''s probably why you are seeing the different results. Scott Brooks On Thursday 25 January 2007 10:53 am, Bruno Celeste wrote:> Thank you Scott. > > I''m accessing mongrel directly but I thought that mongrel can use > X-Sendfile without needing another webserver. > > Parkplace (a camping app) uses X-Sendfile via mongrel, so I don''t > understand. Is it possible to do the same thing with rails? > > On 1/25/07, Scott Brooks <scott at hermitworksentertainment.com> wrote: > > On Thursday 25 January 2007 4:38 am, Bruno Celeste wrote: > > > Hi everyone, > > > > > > > > > I try to use the "X-Sendfile" header, but it doesn''t work as expected. > > > > > > In my controller: > > > > > > path = "/home/bruno/file.tar.gz" > > > headers[''X-Sendfile''] = path > > > headers[''Content-Type''] = "application/octet-stream" > > > headers[''Content-Length''] = File.size(path) > > > render :nothing => true > > > > > > When I request the file, nothing is shown, just a white page. If I do > > > a HEAD request: > > > > > > HTTP/1.1 200 OK > > > Connection: close > > > Date: Thu, 25 Jan 2007 11:22:19 GMT > > > Status: 200 OK > > > X-Sendfile: /home/bruno/file.tar.gz > > > Cache-Control: no-cache > > > Server: Mongrel 1.0.1 > > > Content-Type: application/force-download; charset=utf-8 > > > Content-Length: 1 > > > > > > The weird thing is the content-length is bad and I think mongrel > > > should not show the X-Sendfile header. I also tried to add the > > > content-disposition header but didn''t resolve the problem. > > > > > > I''m using edge rails and the latest mongrel (I deleted older mongrels) > > > > > > > > > Thank you. > > > > X-Sendfile is handled by Apache, or Lighty, etc. If you are just > > accessing mongrel directly, then what you are seeing is correct. If you > > are accessing mongrel via apache, or some other webserver, then it''s > > handling of X-Sendfile is not setup properly. > > > > Scott Brooks > > _______________________________________________ > > Mongrel-users mailing list > > Mongrel-users at rubyforge.org > > http://rubyforge.org/mailman/listinfo/mongrel-users > > _______________________________________________ > Mongrel-users mailing list > Mongrel-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/mongrel-users
Ok, that makes sense. Thank you! On 1/25/07, Scott Brooks <scott at hermitworksentertainment.com> wrote:> I had a quick look through lib/mongrel/camping.rb and it looks like there is > some code in the camping handler in order to handle X-Senfile. > > The rails handler does not have the same code, so that''s probably why you are > seeing the different results. > > Scott Brooks > > On Thursday 25 January 2007 10:53 am, Bruno Celeste wrote: > > Thank you Scott. > > > > I''m accessing mongrel directly but I thought that mongrel can use > > X-Sendfile without needing another webserver. > > > > Parkplace (a camping app) uses X-Sendfile via mongrel, so I don''t > > understand. Is it possible to do the same thing with rails? > > > > On 1/25/07, Scott Brooks <scott at hermitworksentertainment.com> wrote: > > > On Thursday 25 January 2007 4:38 am, Bruno Celeste wrote: > > > > Hi everyone, > > > > > > > > > > > > I try to use the "X-Sendfile" header, but it doesn''t work as expected. > > > > > > > > In my controller: > > > > > > > > path = "/home/bruno/file.tar.gz" > > > > headers[''X-Sendfile''] = path > > > > headers[''Content-Type''] = "application/octet-stream" > > > > headers[''Content-Length''] = File.size(path) > > > > render :nothing => true > > > > > > > > When I request the file, nothing is shown, just a white page. If I do > > > > a HEAD request: > > > > > > > > HTTP/1.1 200 OK > > > > Connection: close > > > > Date: Thu, 25 Jan 2007 11:22:19 GMT > > > > Status: 200 OK > > > > X-Sendfile: /home/bruno/file.tar.gz > > > > Cache-Control: no-cache > > > > Server: Mongrel 1.0.1 > > > > Content-Type: application/force-download; charset=utf-8 > > > > Content-Length: 1 > > > > > > > > The weird thing is the content-length is bad and I think mongrel > > > > should not show the X-Sendfile header. I also tried to add the > > > > content-disposition header but didn''t resolve the problem. > > > > > > > > I''m using edge rails and the latest mongrel (I deleted older mongrels) > > > > > > > > > > > > Thank you. > > > > > > X-Sendfile is handled by Apache, or Lighty, etc. If you are just > > > accessing mongrel directly, then what you are seeing is correct. If you > > > are accessing mongrel via apache, or some other webserver, then it''s > > > handling of X-Sendfile is not setup properly. > > > > > > Scott Brooks > > > _______________________________________________ > > > Mongrel-users mailing list > > > Mongrel-users at rubyforge.org > > > http://rubyforge.org/mailman/listinfo/mongrel-users > > > > _______________________________________________ > > Mongrel-users mailing list > > Mongrel-users at rubyforge.org > > http://rubyforge.org/mailman/listinfo/mongrel-users > _______________________________________________ > Mongrel-users mailing list > Mongrel-users at rubyforge.org > http://rubyforge.org/mailman/listinfo/mongrel-users >