我有一个 Django Web 应用程序,它使用 Channels 和 Daphne 进行 websocket 通信。我所有的 websocket 东西都可以正常工作,没有任何问题。
我的麻烦来自我的服务器还允许我将文件上传到服务器。小文件(甚至高达 282mb)正在上传并且工作正常,没有任何问题。
但是,大文件会导致500 Internal error - Daphne
并显示此堆栈跟踪:
2018-10-29 12:40:14,009 - ERROR - http_protocol - Traceback (most recent call last):
File "..\venv\lib\site-packages\daphne\http_protocol.py", line 176, in process
"body": self.content.read(),
MemoryError
我猜这告诉我达芙妮内存不足。我在这里找到了参考:Daphne Django 文件上传大小限制,这也有助于确认这一发现。
我需要一个答案是如何解决它。我没有在 Docker 中运行我的项目,而是在 Linux VM 实例上。如果我增加整个 VM 上使用的总 RAM,daphne 是否能够获得更多?
有什么方法可以指定 daphne 允许使用比当前更多的内存吗?这个服务器实例有 4gb 的 RAM,而我的文件只有 675mb,所以除非它一次在内存中存储多个副本,否则它应该有足够的容量来容纳这个文件。
如何让 Daphne 能够成功接受大文件上传?