Страницы

Поиск по вопросам

среда, 3 апреля 2019 г.

Заливка большого файла на WEB сервер методом POST python

Помогите разобраться в чем проблема. Хочу залить файл на сервер, использую библиотеку requests. Маленький файл льется отлично, с большим файлом беда - не уходит. Код:
import requests r = requests.get('запорос на урл') upload_url = r['урл сервера'] file = {'video_file': ('1.mp4', open('S:/1.mp4', 'rb'))} r2 = requests.post(upload_url, files=file)
ответ питона
Traceback (most recent call last): File "S:/charm/projects/2.py", line 13, in r2 = requests.post(upload_url, files=file) File "S:\charm\projects\venv\lib\site-packages
equests\api.py", line 112, in post return request('post', url, data=data, json=json, **kwargs) File "S:\charm\projects\venv\lib\site-packages
equests\api.py", line 58, in request return session.request(method=method, url=url, **kwargs) File "S:\charm\projects\venv\lib\site-packages
equests\sessions.py", line 494, in request prep = self.prepare_request(req) File "S:\charm\projects\venv\lib\site-packages
equests\sessions.py", line 437, in prepare_request hooks=merge_hooks(request.hooks, self.hooks), File "S:\charm\projects\venv\lib\site-packages
equests\models.py", line 308, in prepare self.prepare_body(data, files, json) File "S:\charm\projects\venv\lib\site-packages
equests\models.py", line 496, in prepare_body (body, content_type) = self._encode_files(files, data) File "S:\charm\projects\venv\lib\site-packages
equests\models.py", line 159, in _encode_files fdata = fp.read() MemoryError
Повторю, маленькие файлы грузит отлично. Что не так?


Ответ

Попробуйте использовать requests-toolbelt
# pip install requests-toolbelt from requests_toolbelt import MultipartEncoder
# pip install requests import requests
upload_file = open('S:/1.mp4', 'rb') payload = MultipartEncoder({'1.mp4': upload_file})
rs = requests.post('', data=payload , headers={'Content-Type': payload.content_type}) print(rs)

Комментариев нет:

Отправить комментарий