[Mongrel] X-Sendfile doesn't work
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.
More information about the Mongrel-users