django celery 上传处理大文件出错
2017-05-25 本文已影响0人
huarda
django 上传文件大小有个默认值 2.5M,
小于2.5M时,会放在 InMemoryFileUploadFile(内存里面) 对象里面;
大于2.5M时,会放在 TemporaryFileUploadFile (磁盘文件)里面
而 celery 做pickle_dump时会去找file object的encoding
这个encoding目前发现只能存在 InMemoryFileUploadFile 对象里面
所以,我们只有将所有上传文件都放到 InMemoryFileUploadFile 里面,才能通过celery
可以通过在settings里面设置
FILE_UPLOAD_MAX_MEMORY_SIZE = 50*1024*1024
来修改策略使所有50M以内的文件都存在 InMemoryFileUploadFile 里面
这个设置谨慎使用,防止内存溢出!!!