У меня есть два компьютера в одной сети, и я пытаюсь передать файл от одного к другому с помощью python (в контексте более крупного проекта).Загрузка файла с сервера python на сервер
На стороне сервера У меня есть следующий сценарий: бутылка
import bottle
import json
@bottle.hook('after_request')
def enable_cors():
"""
You need to add some headers to each request.
Don't use the wildcard '*' for Access-Control-Allow-Origin in production.
"""
bottle.response.headers['Access-Control-Allow-Origin'] = '*'
bottle.response.headers['Access-Control-Allow-Methods'] = 'PUT, GET, POST, DELETE, OPTIONS'
bottle.response.headers['Access-Control-Allow-Headers'] = 'Origin, Accept, Content-Type, X-Requested-With, X-CSRF-Token'
# LANDING (IT IS NOT REALLY NEEDED JUST TO CHECK STUFF)
@bottle.route('/', method='GET')
def root():
return {
'api': 'api/'
}
@bottle.route('/api', method='POST')
def upload():
upload = bottle.request.files.get('file')
print upload.filename
upload.save('input.txt')
if __name__ == '__main__':
bottle.run(host='0.0.0.0', port=8080, debug=True)
На стороне клиента Я пытаюсь отправить файл через библиотеку запроса, такие как:
import sys
import requests
r = requests.post('http://ip:port/api/', files={'file': open(sys.argv[1], 'rb')})
print r
(ip и порт соответствует его соответствующим значениям).
Я получаю эту ошибку, о которой я не уверен, как обращаться.
Traceback (most recent call last):
File "loopmatch.py", line 4, in <module>
r = requests.post('http://ip:port/api/', files={'file': open(sys.argv[1], 'rb')})
File "/usr/local/lib/python2.7/site-packages/requests/api.py", line 111, in post
return request('post', url, data=data, json=json, **kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/api.py", line 57, in request
return session.request(method=method, url=url, **kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/sessions.py", line 475, in request
resp = self.send(prep, **send_kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/sessions.py", line 585, in send
r = adapter.send(request, **kwargs)
File "/usr/local/lib/python2.7/site-packages/requests/adapters.py", line 453, in send
raise ConnectionError(err, request=request)
requests.exceptions.ConnectionError: ('Connection aborted.', error(32, 'Broken pipe'))
Любая помощь будет очень признательна.
Спасибо!
Я не вижу никаких проблем там ... Является ли определенная работа ... Вы работаете за прокси? Попробуйте очистить pyc и закройте pid, если необходимо, и убедитесь, что порт ip, который вы запускаете, свободен до запуска ... –
Все выглядит хорошо по этому поводу. Маршрут * root * был настроен так, чтобы иметь возможность оценить эти проблемы. Я видел, что было ошибкой. Но спасибо за ваш ответ! – jaumebonet