gpt4 book ai didi

python - Daphne Django 文件上传大小限制

转载 作者:太空宇宙 更新时间:2023-11-04 04:56:18 24 4
gpt4 key购买 nike

我将 Daphne 用于套接字和 http 连接。我正在运行 4 个工作容器,并且现在在一个 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 在将控制权转移到带有 channel 的 django 之前立即完整地加载了整个 HTTP POST 请求主体。

所有 400 MB 都已加载到 RAM 中 here .您的 docker 容器因 out of memory 而死亡原因。

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

有开票here如果您想立即阻止它,请使用 uvicorn取而代之的是达芙妮。 Uvicorn 必须通过 block 将控制权传递给 Django。根据 FILE_UPLOAD_MAX_MEMORY_SIZE django 设置,您将在硬盘上(而不是在 RAM 中)收到一个临时文件。但是您需要编写自己的 AsyncHttpConsumerAsgiHandler 因为 channel 中的 AsgiHandlerAsgiRequest 也不支持分块主体.这将在 PR 之后成为可能.

关于python - Daphne Django 文件上传大小限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46986220/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com