我有一个使用Channels和Daphne进行WebSocket通信的Django Web应用程序。我所有的websocket东西都正常运行,没有任何问题。
我的麻烦来自于我的服务器还允许我将文件上传到服务器的事实。小文件(甚至最大282mb)正在上传,并且工作正常,没有任何问题。
但是,大文件会产生<!DOCTYPE HTML>
<html>
<body>
<script type="text/babel>
class App extends React.Component {
createCircles = () => {
let circles = [];
for(let i = 1; i <= this.props.count; i++){
circles.push(<div className = "smallCircle" id={'circle'+i} key={i}><code className="circles" id={'id'+i}>{i}</code></div>);
}
return circles;
}
render(){
return (
<div id="circles">
<div className = "bigCircle" id="bigCircle">
<img id="bigCircleImage" src="http://localhost" />
</div>
<div className = "smallCircles">
{this.createCircles()}
</div>
</div>
);
}
}
function AppLoader(){
return (
<App />
);
}
ReactDOM.render(<AppLoader />, document.getElementById('root'));
</script>
<div id="root"></div>
</body>
</html>
并显示此堆栈跟踪:
500 Internal error - Daphne
我猜这是在告诉我达芙妮的内存不足。我在这里找到了参考:Online Babel Converter,这也有助于确认这一发现。
我需要一个解决的办法。我不在Docker内部运行我的项目,而是在Linux VM实例上。如果我增加了整个VM上使用的总RAM,daphne是否可以获取更多?
我可以通过某种方式指定daphne允许使用比当前更多的内存吗?该服务器实例具有4gb的RAM,我的文件只有675mb,因此,除非它一次将多个副本存储在内存中,否则它应该足以容纳该文件。
如何使Daphne能够成功接受大文件上传?