使用Django Framework构建Web应用程序
CentOS Linux release 7.1.1503 (Core)
nginx version: nginx/1.6.3
gunicorn==19.3.0
Django==1.8.4
上传小于2.7M
的图片时,一切正常。
MEDIA_ROOT
)-rw-r--r-- 1 tb360 tb360
但是当图片大小超过2.7M
MEDIA_ROOT
)-rw------- 1 tb360 tb360
在我刚刚为此类图像添加读取权限后,它将由Web服务器提供,而不会出现问题。
在本地开发机器上进行测试时,没有类似的问题。
答案 0 :(得分:2)
Django正在使用2个上传处理程序:MemoryFileUploadHandler
和TemporaryFileUploadHandler
。第一个将在ram中保留上传的文件,然后再决定如何处理它。第二个将文件放在临时目录中,稍后将其移动到正确的位置。
可能会出现问题,因为内存处理程序只会占用一定大小的文件,并且您的系统对临时目录具有不同的默认文件权限。将文件从临时文件移动到MEDIA_ROOT
时,将保留这些权限。
您可以通过设置FILE_UPLOAD_PERMISSIONS
(因此文件将始终具有适当的权限)或FILE_UPLOAD_TEMP_DIR
(将临时文件存储在不同的位置,而不设置更严格的文件权限)来解决该问题。