Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用Python将一个潜在的巨大文本文件上载到普通WSGI服务器_Python_File_Upload_Wsgi - Fatal编程技术网

用Python将一个潜在的巨大文本文件上载到普通WSGI服务器

用Python将一个潜在的巨大文本文件上载到普通WSGI服务器,python,file,upload,wsgi,Python,File,Upload,Wsgi,我需要上传一个可能很大的纯文本文件到一个非常简单的wsgi应用程序,而不会占用服务器上的所有可用内存。我如何做到这一点?我希望使用标准的python模块,尽可能避免使用第三方模块。python知道如何压缩文件(使用zip或gzip兼容的应用程序,如7-zip),然后将其上载到服务器 更好的方法是:编写一个脚本,自动压缩文件并上传。这在标准库中是可能的。python知道如何在客户端上压缩文件(使用zip或gzip兼容的应用程序,如7-zip),然后将其上载到服务器 更好的方法是:编写一个脚本,自动

我需要上传一个可能很大的纯文本文件到一个非常简单的wsgi应用程序,而不会占用服务器上的所有可用内存。我如何做到这一点?我希望使用标准的python模块,尽可能避免使用第三方模块。

python知道如何压缩文件(使用zip或gzip兼容的应用程序,如7-zip),然后将其上载到服务器

更好的方法是:编写一个脚本,自动压缩文件并上传。这在标准库中是可能的。

python知道如何在客户端上压缩文件(使用zip或gzip兼容的应用程序,如7-zip),然后将其上载到服务器


更好的方法是:编写一个脚本,自动压缩文件并上传。这在标准库中是可能的。

wsgi.input应该是类似文件的流对象。您可以从中读取数据块,然后将这些数据块直接写入磁盘。这不应该占用任何重要的内存


或者我误解了这个问题?

wsgi.input应该是一个类似文件的流对象。您可以从中读取数据块,然后将这些数据块直接写入磁盘。这不应该占用任何重要的内存


或者我误解了这个问题?

如果您使用cgi模块来解析输入(大多数框架都使用它,例如Pylons、WebOb、CherryPy),那么它会自动将上传的文件保存到临时文件,而不会将其加载到内存中。

如果您使用cgi模块解析输入(大多数框架都使用这些功能,例如挂架、WebOb、CherryPy)然后,它会自动将上传的文件保存到一个临时文件中,而不会将其加载到内存中。

如今,该文件必须非常庞大,以使内存成为一个真正的问题。当您在服务器上运行时,即使它有几GB的内存,您也会启动并运行大量服务,等等,您不希望突然出现任何文件,即使是100MB你可能会消耗掉一大块内存,因为即使是最好的情况,这也意味着你必须在某个地方扔掉100MB的缓存,这会降低服务器的速度。这可能不会导致任何崩溃,但繁忙的服务器可能会因为上传而降低速度。如今,文件必须非常庞大,以使内存成为一个真正的问题。当你在服务器上运行时无论如何,即使它有几GB的内存,你也有大量的服务在运行,等等,你不希望任何文件,即使是100MB,突然消耗掉一大块内存,因为这意味着,即使是最好的情况,你也必须在某个地方扔掉100MB的缓存,这会降低服务器的速度。它可能不会崩溃任何东西,但会导致繁忙的服务崩溃r可能会因为上传而变慢。