As mentioned a few times in #2070, uploaded files large enough to be streamed to a temporary file get created with a mode of 0600, as per python's tempfile.mkstemp. This causes two problems:
- Files uploaded into memory and saved to disk respect the umask, so uploads could have different permissions based on how big they are.
- If the webserver user and django user do not match (such as when running an external FastCGI process), the webserver can no longer serve uploaded files.
Attached is a patch that implements a FILE_UPLOAD_PERMISSIONS setting. Right now, it defaults to the current behavior (leaving the permissions alone).
Discussion (or lack thereof) here:
http://groups.google.com/group/django-developers/browse_frm/thread/e7d7ca62b9f6d331
The inconsistency seems like a bug to me, so marking as 1.0.