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
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
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
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