Я в процессе написания модуля python для POST-файлов на сервер, я могу загружать файлы размером до 500 МБ, но когда я попытался загрузить файл 1gb, загрузка не удалась. Если бы я был использовать что-то вроде cURL, это не подведет. Я получил код после googling, как загрузить multipart formdata
с помощью python, код можно найти 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, я буду честен, я не знаю, как ее запустить. Я попытался запустить его, угадывая, основываясь на имени функции, но это не сработало.
Возможно, я что-то недопонимаю, но при загрузке 1 Гб предполагается, что предел сервера составляет 500 мегабайт. – kevin628
Я не устанавливал никаких ограничений, как я уже сказал, я могу загрузить 1gb + файлы с помощью cURL. – cyberbemon
@cyberbemon: трассировка показывает, что код пытается загрузить весь файл в памяти ('fd.read()'). Либо увеличьте разрешенный объем памяти для процесса или поток контента (как «завиток», вероятно, см. Http://stackoverflow.com/questions/2502596/python-http-post-a-large-file-with -streaming – jfs