首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Daphne Django文件上传大小限制

Daphne Django文件上传大小限制
EN

Stack Overflow用户
提问于 2017-10-28 12:21:19
回答 1查看 800关注 0票数 2

我使用Daphne进行socket和http连接。我正在运行4个worker容器,并且现在在一个docker容器中本地运行所有的东西。

如果我尝试上传400MB的文件,我的daphne服务器会失败。它可以很好地处理15MB以下的小文件。

我的docker容器退出,错误代码为137。我在daphne日志中没有得到任何错误。daphne容器死了,而worker容器继续运行。

有没有人知道有没有办法提高daphne上的上传限制,或者我错过了其他东西?

我通过daphne -b 0.0.0.0 -p 8001 project.asgi:channel_layer --access-log=${LOGS}/daphne.access.log启动了daphne服务器

EN

回答 1

Stack Overflow用户

发布于 2019-03-19 17:18:05

这是因为daphne在通过通道将控制权转移到django之前完全加载了整个HTTP POST请求正文。

所有的400MB内存都加载到内存here中。由于out of memory原因,您的停靠容器已死。

这甚至在检查django中的请求体的大小之前就发生了。请参阅here

如果你现在想阻止它,可以使用uvicorn来代替daphne,这是开放的here。Uvicorn必须使用块将控制权传递给Django。根据FILE_UPLOAD_MAX_MEMORY_SIZE django的设置,您将在硬盘上(而不是在内存中)收到一个临时文件。但您需要编写自己的AsyncHttpConsumerAsgiHandler,因为来自通道的AsgiHandlerAsgiRequest也不支持分块正文。在PR之后,这将成为可能。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46986220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档