将上传的文件写在磁盘上

时间:2011-09-03 16:14:05

标签: nginx web.py

查看web.py的这个页面: http://webpy.org/cookbook/storeupload/ 注意它如何在磁盘上写文件。

目前的情况是: 我在virtualbox中启动了一个具有256 MB内存和512交换的服务器。 就在我上传大于200 mb的文件时,我收到一个错误(“该页面暂时不可用”)。

我认为python文件写入函数会将整个文件读入内存,然后由于内存有限而崩溃。

我是对的吗? 如果是的话,有什么解决方案吗?

感谢您的时间。

2 个答案:

答案 0 :(得分:0)

我认为你已经正确设置了 nginx ,尤其是client_max_body_size指令。

我认为你是对的,你的问题与内存使用不良有关:它可能来自read()方法。

在没有size参数的情况下使用,将读取并返回文件的全部内容。由于该文件几乎与机器的内存一样大,程序会耗尽并崩溃。

你应该做的是investigate on better ways to copy a file in Python

答案 1 :(得分:0)

尽量不要读取内存中的整个文件,创建一个循环并将文件传输1024个字节的块。