我正在尝试在 Django 中上传图像文件,我使用 celery 将上传任务发送到任务队列中,但是当我上传大于 2.5mb 的图像文件时,它会崩溃并出现此错误 cannot pickle '_io.BufferedRandom ' object
我已经向 Django 添加了一些设置选项,但这不起作用。
celery 应用程序设置
FILE_UPLOAD_MAX_MEMORY_SIZE = 90005000
CELERY_BROKER_URL = os.environ.get('REDIS_TLS')
CELERY_ACCEPT_CONTENT = ['pickle', 'application/json']
CELERY_TASK_SERIALIZER = 'pickle'
CELERY_RESULT_BACKEND = 'django-db'
有什么办法可以解决这个问题,提醒一下,当我单独使用 Django 上传图像文件时,无论大小它都可以工作,所以问题是由于 celery 无法处理大于 2.5MB 的文件
最佳答案
您需要在settings.py
中设置FILE_UPLOAD_MAX_MEMORY_SIZE
变量。
例如,
FILE_UPLOAD_MAX_MEMORY_SIZE = 10 * 1024 * 1024 # 10 Mb limit
如果需要,您还需要为 Nginx 服务器配置相同的限制。
关于python - Django 文件 uploader 抛出错误 "cannot pickle ' _io.BufferedRandom' object"同时使用 celery 上传更多感谢 2.5mb 的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68392781/