util.py 文件源码

python
阅读 25 收藏 0 点赞 0 评论 0

项目:tmper 作者: mattbierbaum 项目源码 文件源码
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()
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号