gpt4 book ai didi

python - 大文件上传失败

转载 作者:太空宇宙 更新时间:2023-11-04 09:15:00 25 4
gpt4 key购买 nike

我正在编写一个 python 模块以将文件发布到服务器,我可以上传最大 500MB 的文件,但是当我尝试上传 1gb 文件时上传失败,如果我使用类似cURL 它不会失败。在谷歌搜索如何使用 python 上传 multipart formdata 后,我得到了代码,可以找到代码 here .我刚刚编译并运行了该代码,我得到的错误是这个

Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
opener.open("http://127.0.0.1/test_server/upload",params)
File "C:\Python27\lib\urllib2.py", line 392, in open
req = meth(req)
File "C:\Python27\MultipartPostHandler.py", line 35, in http_request
boundary, data = self.multipart_encode(v_vars, v_files)
File "C:\Python27\MultipartPostHandler.py", line 63, in multipart_encode
buffer += '\r\n' + fd.read() + '\r\n'
MemoryError

我是 python 的新手,很难掌握它。我还遇到了另一个程序 here ,老实说,我不知道如何运行它。我尝试通过根据函数名称猜测来运行它,但这没有用。

最佳答案

有问题的脚本不是很聪明,它会在内存中构建 POST 正文。

因此,要 POST 一个 1GB 的文件,您需要 1GB 的内存来保存该数据,以及 HTTP header 、边界、python 和代码本身。

您必须重新编写脚本以改用 mmap,您首先在临时文件中构造整个主体,然后将该文件包裹在 mmap.mmap 值中以将其传递给 request.add_data.

参见 Python: HTTP Post a large file with streaming有关如何实现该目标的提示。

关于python - 大文件上传失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10740436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com