- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我将 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 中)收到一个临时文件。但是您需要编写自己的 AsyncHttpConsumer
或 AsgiHandler
因为 channel 中的 AsgiHandler
和 AsgiRequest
也不支持分块主体.这将在 PR 之后成为可能.
关于python - Daphne Django 文件上传大小限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46986220/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!