I'm trying to implement a limit on the size of uploaded files which depends on a user's status, i.e. a user who pays gets to upload larger files than one who doesn't. I want to check the size of the upload BEFORE reading the data because I don't want to read 27 gigabytes only to find that this user is limited to 1MB. I can't user Apache's LimitRequestBody directive. The filtering has to be done within the application because it's the only part of the system that knows the user's status.
I found this: http://mail.python.org/pipermail/web-sig/2008-November/003639.html which says: "If you use embedded mode, so long as your WSGI application doesn't read the input and just returns the error response, the request content wouldn't be read at all." So I tried this: def application(environ, start_response): status = '200 OK' headers = [('Content-type', 'text/html'),('Connection','close')] out = start_response(status, headers) out('--%s--<br>' % environ.get('CONTENT_LENGTH')) return ['''<form method=post enctype="multipart/form-data"> <input name=f type=file> <input type=submit></form>'''] and ran it using: WSGIScriptAlias /wsgitest /path/to/driver.wsgi <location /wsgitest> WSGIApplicationGroup %{GLOBAL} </Location> which as far as I can tell should result in running in embedded mode. This seems like it *should* display the size of the uploaded file without reading the file data. However, empirically, the data is being read. If I upload a large file, there's a long delay before getting a response. So what am I doing wrong? Thanks, and Happy Thanksgiving! -- You received this message because you are subscribed to the Google Groups "modwsgi" group. To view this discussion on the web visit https://groups.google.com/d/msg/modwsgi/-/rEYG3K-zj74J. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/modwsgi?hl=en.
