我想知道通过使用Django/Python的Web应用程序上传大约4 GB大小的文件是否有什么影响?我记得在过go ,使用Java的流式上传是首选方法,但是现在仍然是这样吗,或者使用Django/Python这样做是完全安全的吗?
我想知道通过使用Django/Python的Web应用程序上传大约4 GB大小的文件是否有什么影响?我记得在过go ,使用Java的流式上传是首选方法,但是现在仍然是这样吗,或者使用Django/Python这样做是完全安全的吗?
默认情况下,如果上传的文件数据小于2.5MB,Django会将其放入内存.任何较大的内容都将写入服务器的/tmp
目录,然后在传输完成时进行复制.Django的许多文件上传设置都可以自定义,详情请参见the documentation.您还可以自定义文件处理,您肯定希望这样做.
在我们考虑任何技术限制之前,使用浏览器上传如此大的文件会给用户带来非常糟糕的体验.没有关于传输如何进行的反馈(尽管google Chrome确实以百分比的形式显示上传状态),也没有办法暂停或恢复传输.
您还可能在服务器上遇到问题.除了每个线程将花费极长的时间来处理流数据之外,您还有时间让系统将结果文件从/tmp
复制到其正确的位置.
除非您非常有信心能够预见服务器在上传过程中可能出现的任何问题,否则我认为这是一个坏主意.通过谷歌很难找到这方面的任何信息,而且似乎有很多关于大文件上传问题的点击.
虽然Django在技术上能够接收如此大的上传文件,但非常糟糕的用户体验和技术困难意味着这可能不是最好的方法.您有没有考虑过使用专用软件来处理文件传输?