[Mongrel] X-Sendfile doesn't work

Scott Brooks scott at hermitworksentertainment.com
Thu Jan 25 12:23:08 EST 2007


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


More information about the Mongrel-users mailing list