def upload_file(self, filepath):
try:
# bypass multipart encoder / don't works with nginx direct upload.
# encoder = self.create_upload(filepath)
encoder = open(filepath, 'rb')
try:
encoder.len = os.path.getsize(filepath)
except AttributeError:
# supporting python 2.7 trick for adding len to file stream
class Wrapped(object):
def __init__(self, enc, path):
self._enc = enc
self.len = os.path.getsize(path)
def __getattr__(self, attr):
return getattr(self._enc, attr)
encoder = Wrapped(encoder, filepath)
callback = self.create_callback(encoder)
monitor = MultipartEncoderMonitor(encoder, callback)
response = requests.post(self.up_url,
data=monitor,
headers={
# 'Content-Type': monitor.content_type,
'X-NAME': os.path.basename(filepath)
})
print(ENDL)
print(json.loads(response.text))
return response
except requests.exceptions.ConnectionError:
self.configuration_service.log('CONNECTION_CLOSED')
评论列表
文章目录