使用 Python/Django 上传大文件

2024-03-28

我想知道通过使用 Django/Python 的 Web 应用程序上传大约 4GB 大小的文件是否有任何影响?我记得过去使用 Java 进行流式上传是首选方法,但现在仍然如此吗?或者使用 Django/Python 这样做是否完全安全?


如果上传的文件数据小于 2.5MB,Django 默认会将其放入内存中。任何更大的内容都将写入服务器的/tmp目录,然后在传输完成时复制。 Django的很多文件上传设置都是可以自定义的,详细信息可以参见文档 https://docs.djangoproject.com/en/dev/topics/http/file-uploads/#file-uploads。您还可以自定义文件处理,您肯定会想要这样做。

在我们考虑任何技术限制之前,使用浏览器上传如此大的文件会给用户带来非常差的体验。没有关于传输进展情况的反馈(尽管谷歌浏览器确实以百分比形式显示上传状态),也无法暂停或恢复传输。

您还可能在服务器上遇到问题。除了每个线程处理流数据需要花费很长的时间之外,系统还需要时间来复制结果文件/tmp到正确的位置。

除非您非常有信心可以预见服务器上传时可能出现的任何问题,否则我建议这是一个坏主意。通过谷歌很难找到这方面的任何信息,而且似乎确实有很多描述大文件上传问题的点击。

虽然 Django 在技术上能够接收这么大的上传文件,但非常差的用户体验和技术困难意味着这可能不是最好的方法。您是否考虑过使用专用软件来处理文件传输?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Python/Django 上传大文件 的相关文章

随机推荐