Django默认情况下会将上传的文件数据小于2.5MB放入内存中。较大的内容将被写入服务器/tmp
目录,然后在传输完成时复制到整个服务器。可以自定义Django的许多文件上传设置,有关详细信息,请参见文档。您还可以自定义文件处理,当然您会想要这样做。
在考虑任何技术限制之前,使用浏览器上传如此大的文件将给用户带来非常糟糕的体验。没有关于传输进行情况的反馈(尽管google chrome确实将上传状态显示为百分比),也无法暂停或继续传输。
您还可能在服务器上遇到问题。除了每个线程都要花费很长时间来处理流数据之外,您还需要系统花费一些时间将结果文件从其复制/tmp
到正确的位置。
除非您非常有信心可以预见服务器上载可能出现的任何问题,否则我建议这不是一个好主意。通过Google很难找到关于此的任何信息,而且似乎有很多热门文章描述了大文件上传的问题。
尽管Django在技术上能够接收如此大的上传文件,但非常糟糕的用户体验和技术难题意味着这可能不是最佳方法。您是否考虑过使用专用软件来处理文件传输?