[Mongrel] Mongrel 0.3.12.5 -- Pre-Release with File Upload whyness

Zed Shaw zedshaw at zedshaw.com
Tue Apr 18 22:30:38 EDT 2006


I've got a Mongrel 0.3.12.5 pre-release in the releases directory I'd like
people to try out:

  gem install mongrel --source=http://mongrel.rubyforge.org/releases/

This release incorporates why's changes to allow for uploading files much
more efficiently and for streaming out files via a HttpResponse.send_file
call.

I re-wrote the file upload part what why created to refactor that whole
process.  It now handles quite a few corner cases related to efficient file
uploads:

  * Writes to a Tempfile if greater than 92k.
  * Deletes the Tempfile if the user aborts the upload (closed socket).
  * Detects when not enough was uploaded to match the reported
Content-length
  * Simplifies the upload chunking logic so there's the same socket read
loop whether you're uploading a large or small file.

The *only* thing that I haven't got quite right is that it seems to leak the
Tempfile objects (and thus the files). They stay around after the uploads so
I've got to work out whether deleting them is safe or not.

Anyway, try the stuff out, especially with something like Park Place and
report any bugs you find.

Zed



More information about the Mongrel-users mailing list