def upload(url, filename, code='', password='', num=1, time='', disp=False):
""" Upload the file 'filename' to tmper url """
url = url or conf_read('url')
password = password or conf_read('pass')
if not url:
print("No URL provided! Provide one or set on via conf.", file=sys.stderr)
sys.exit(1)
url = url if not code else urlparse.urljoin(url, code)
arg = {} if not password else {'key': password}
arg = arg if num == 1 else dict(arg, n=num)
arg = arg if time == '' else dict(arg, time=time)
name = os.path.basename(filename)
if not os.path.exists(filename):
print("File '{}' does not exist".format(filename), file=sys.stderr)
sys.exit(1)
def create_callback(encoder):
bar = progress.ProgressBar(encoder.len, display=disp)
def callback(monitor):
bar.update(monitor.bytes_read)
return callback
with open(filename, 'rb') as f:
mimetype = mimetypes.guess_type(filename)[0] or 'application/unknown'
# prepare the streaming form uploader (with progress bar)
encoder = MultipartEncoder(dict(arg, filearg=(filename, f, mimetype)))
callback = create_callback(encoder)
monitor = MultipartEncoderMonitor(encoder, callback)
header = {
'User-Agent': 'tmper/{}'.format(__version__),
'Content-Type': monitor.content_type
}
r = requests.post(url, data=monitor, headers=header)
print(r.content.decode('utf-8'))
r.close()
评论列表
文章目录