コード例 #1
0
ファイル: pcs.py プロジェクト: lubing521/bcloud
def slice_upload(cookie, data):
    '''分片上传一个大文件
    
    分片上传完成后, 会返回这个分片的MD5, 用于最终的文件合并.
    如果上传失败, 需要重新上传.
    不需要指定上传路径, 上传后的数据会被存储在服务器的临时目录里.
    data - 这个文件分片的数据.
    '''
    url = ''.join([
        const.PCS_URL_C,
        'file?method=upload&type=tmpfile&app_id=250528',
        '&', cookie.sub_output('BDUSS'),
        ])
    fields = []
    files = [
        ('file', ' ', data),
        ]
    headers = {
        'Accept': const.ACCEPT_HTML,
        'Origin': const.PAN_URL,
        }
    req = net.post_multipart(url, headers, fields, files)
    if req:
        return json.loads(req.data.decode())
    else:
        return None
コード例 #2
0
ファイル: pcs.py プロジェクト: lubing521/bcloud
def upload(cookie, source_path, path, ondup='overwrite'):
    '''上传一个文件.

    这个是使用的网页中的上传接口.
    ondup - 如果文件已在服务器上存在, 该如何操作. 有两个选项:
            overwrite, 直接将其重写.
            newcopy, 保留原先的文件, 并在新上传的文件名尾部加上当前时间戳.
    '''
    dir_name, file_name = os.path.split(path)
    url = ''.join([
        const.PCS_URL_C,
        'file?method=upload&app_id=250528',
        '&ondup=', ondup,
        '&dir=', encoder.encode_uri_component(dir_name),
        '&filename=', encoder.encode_uri_component(file_name),
        '&', cookie.sub_output('BDUSS'),
        ])
    with open(source_path, 'rb') as fh:
        data = fh.read()
    fields = []
    files = [
        ('file', file_name, data),
        ]
    headers = {
        'Accept': const.ACCEPT_HTML,
        'Origin': const.PAN_URL,
        }
    req = net.post_multipart(url, headers, fields, files)
    if req:
        return json.loads(req.data.decode())
    else:
        return None
コード例 #3
0
ファイル: pcs.py プロジェクト: BuddhismZhang/bcloud
def upload(cookie, source_path, path, ondup="overwrite"):
    """上传一个文件.

    这个是使用的网页中的上传接口.
    ondup - 如果文件已在服务器上存在, 该如何操作. 有两个选项:
            overwrite, 直接将其重写.
            newcopy, 保留原先的文件, 并在新上传的文件名尾部加上当前时间戳.
    """
    dir_name, file_name = os.path.split(path)
    url = "".join(
        [
            const.PCS_URL_C,
            "file?method=upload&app_id=250528",
            "&ondup=",
            ondup,
            "&dir=",
            encoder.encode_uri_component(dir_name),
            "&filename=",
            encoder.encode_uri_component(file_name),
            "&",
            cookie.sub_output("BDUSS"),
        ]
    )
    with open(source_path, "rb") as fh:
        data = fh.read()
    fields = []
    files = [("file", file_name, data)]
    headers = {"Accept": const.ACCEPT_HTML, "Origin": const.PAN_URL}
    req = net.post_multipart(url, headers, fields, files)
    if req:
        return json.loads(req.data.decode())
    else:
        return None
コード例 #4
0
def slice_upload(cookie, data):
    '''分片上传一个大文件
    
    分片上传完成后, 会返回这个分片的MD5, 用于最终的文件合并.
    如果上传失败, 需要重新上传.
    不需要指定上传路径, 上传后的数据会被存储在服务器的临时目录里.
    data - 这个文件分片的数据.
    '''
    url = ''.join([
        const.PCS_URL_C,
        'file?method=upload&type=tmpfile&app_id=250528',
        '&',
        cookie.sub_output('BDUSS'),
    ])
    fields = []
    files = [
        ('file', ' ', data),
    ]
    headers = {
        'Accept': const.ACCEPT_HTML,
        'Origin': const.PAN_URL,
    }
    req = net.post_multipart(url, headers, fields, files)
    if req:
        return json.loads(req.data.decode())
    else:
        return None
コード例 #5
0
def upload(cookie, source_path, path, ondup='overwrite'):
    '''上传一个文件.

    这个是使用的网页中的上传接口.
    ondup - 如果文件已在服务器上存在, 该如何操作. 有两个选项:
            overwrite, 直接将其重写.
            newcopy, 保留原先的文件, 并在新上传的文件名尾部加上当前时间戳.
    '''
    dir_name, file_name = os.path.split(path)
    url = ''.join([
        const.PCS_URL_C,
        'file?method=upload&app_id=250528',
        '&ondup=', ondup,
        '&dir=', encoder.encode_uri_component(dir_name),
        '&filename=', encoder.encode_uri_component(file_name),
        '&', cookie.sub_output('BDUSS'),
        ])
    with open(source_path, 'rb') as fh:
        data = fh.read()
    fields = []
    files = [
        ('file', file_name, data),
        ]
    headers = {
        'Accept': const.ACCEPT_HTML,
        'Origin': const.PAN_URL,
        }
    req = net.post_multipart(url, headers, fields, files)
    if req:
        return json.loads(req.data.decode())
    else:
        return None
コード例 #6
0
ファイル: pcs.py プロジェクト: BuddhismZhang/bcloud
def slice_upload(cookie, data):
    """分片上传一个大文件
    
    分片上传完成后, 会返回这个分片的MD5, 用于最终的文件合并.
    如果上传失败, 需要重新上传.
    不需要指定上传路径, 上传后的数据会被存储在服务器的临时目录里.
    data - 这个文件分片的数据.
    """
    url = "".join([const.PCS_URL_C, "file?method=upload&type=tmpfile&app_id=250528", "&", cookie.sub_output("BDUSS")])
    fields = []
    files = [("file", " ", data)]
    headers = {"Accept": const.ACCEPT_HTML, "Origin": const.PAN_URL}
    req = net.post_multipart(url, headers, fields, files)
    if req:
        return json.loads(req.data.decode())
    else:
        return None