[Twisted-web] Large file uploads
exarkun at twistedmatrix.com
exarkun at twistedmatrix.com
Fri Jul 16 11:33:18 EDT 2010
On 02:45 pm, julian at whisper-net.de wrote:
>Hallo,
>
>I'm currently realizing a web server for my company which allows
>control of
>some of our embedded devices. After some research, I decided on python
>and
>twisted as the way to go using genshi as templating engine, which works
>very
>well.
>The problem I encountered is as follows: The user of the web panel
>should also
>be able to upgrade the firmware on our device. To make this possible, a
>file
>upload has to take place. The firmware file can have a size of up to
>150MB, so
>it will not fit in the RAM of our device. It either won't fit on the
>NAND flash
>chip twice, so it should be written to NAND with its final name and not
>as a
>temporary file. To tell the server where to store the file upload, I
>could add a
>hidden input to the upload form indicating the type of the file being
>uploaded,
>so that the web server can save it to the right location.
>Where's the place to hook in twisted to implement such a behaviour? Do
>I
>really have to write a completely independent implementation of the
>HTTP
>handler or could I also reuse some parts of twisted.web?
>Does some code exist already which implements the wanted behaviour or
>could be
>modified to implement it?
You can override `Request.gotLength` to inspect the request and select
an appropriate destination for the request body.
You can convince Site to use your custom request by setting it as the
`requestFactory` attribute.
Jean-Paul
More information about the Twisted-web
mailing list