...我有一个包含大量数据的Django应用程序和一个运行在Raspberry PI(OS=Debian12)上的MariaDB数据库.该应用程序使用Daphne作为Web服务器,因为其中还包含Django Channel组件(WebSocket).现在我想实现一个备份功能,它可以自动转储数据库,将转储与其他数据文件压缩在一起,并让浏览器自动下载ZIP文件.因此,我为下载制作了一个视图:
def downbackup(request):
if request.user.is_superuser:
filename = '../temp/backup/backup.zip'
sourcefile = open(filename, 'rb')
return FileResponse(sourcefile)
else:
return(HttpResponse('No Access.'))
通过url从相关模板调用该视图,一切都很好.直到我们在现实生活中遇到大文件.在这种情况下(文件大小约6 GB),Daphne会立即停止操作,而Raspi崩溃得如此之深,以至于我不得不打开和关闭电源.此外,在Monorix中,我看到在这些崩溃之后,内存消耗激增.但在Daphne日志(log)、Django日志(log)(包括调试设置)也不在日志(log)CTL中.NGINX(反向代理)报告上行链路超时(504).我想我从Django文档中了解到,FileResponse缓冲文件以避免内存消耗,但这里一定出了什么问题.有什么 idea 和建议吗?