Python cgi FieldStorage 慢,有替代方案吗?
我有一个用Python写的CGI脚本,它可以接收通过HTTP POST上传的文件。这些文件可能很大(超过300MB)。问题是,使用cgi.FieldStorage()来获取文件非常慢(一个300MB的文件花了6分钟才“接收”完)。而直接读取标准输入(stdin)大约只需要15秒。使用后者的问题是,如果有多个字段被上传,我就得自己解析数据。
有没有比FieldStorage()更快的替代方法?
1 个回答
2
“我得自己解析数据。”
为什么呢?CGI有一个你可以直接调用的解析器。
先读取上传的内容,然后把它保存到本地的一个文件里。
如果想要速度快,可以使用一个内存中的StringIO文件。不过要注意,上传的数据会占用一定的内存。
使用cgi.parse(mylocalfile)
来解析数据。