用Python将大文件上传到Django

4 投票
2 回答
2235 浏览
提问于 2025-04-15 17:11

我正在寻找一种最佳的方法(最有效的方法)来从一个Python应用程序向Django服务器上传大文件。

如果我在Django端依赖原始的post数据,那么所有内容都需要先加载到内存中,这样做效率很低,特别是当接收到的文件有几百兆的时候。

使用Django提供的文件上传方法是不是更好呢?这意味着要使用multipart/form-data格式的post。

或者有没有更好的方法呢?

Laurent

2 个回答

6

我觉得只有小于2.5MB的文件会被存储在内存里,任何大于2.5MB的文件都会被流式处理或者写入临时文件夹中的临时文件。

参考资料: http://simonwillison.net/2008/Jul/1/uploads/ 以及这里 http://docs.djangoproject.com/en/dev/topics/http/file-uploads/

2

如果你真的想让这个过程更高效,并且不希望在传输数据时让Django变得慢吞吞的,影响到它的运行,可以考虑使用nginx上传模块。你也可以看看这篇博客,了解更多信息。

撰写回答