上传需要传递的资源文件 :param path_dict:{ 'params_key_name'(params中的字段名): 绝对路径 } :return: 传输中间数据文件 transfer_info
(self, path_dict)
| 29 | |
| 30 | class TransferMgr(object): |
| 31 | def upload_file(self, path_dict): |
| 32 | ''' |
| 33 | 上传需要传递的资源文件 |
| 34 | :param path_dict:{ |
| 35 | 'params_key_name'(params中的字段名): 绝对路径 |
| 36 | } |
| 37 | :return: 传输中间数据文件 transfer_info |
| 38 | ''' |
| 39 | path_list = [] |
| 40 | for param_name in path_dict.keys(): |
| 41 | path_list.append( |
| 42 | { |
| 43 | 'params_key_name': param_name, |
| 44 | 'rel_path': os.path.relpath(path_dict[param_name], DATA_BASE) # 此处要想一想,是有必要这样 |
| 45 | } |
| 46 | ) |
| 47 | |
| 48 | for item in path_list: |
| 49 | file_path = os.path.join(DATA_BASE, item['rel_path']) |
| 50 | tmp_zip_file = tempfile.mktemp(prefix='zip_', dir=DATA_BASE, suffix='.zip') |
| 51 | Zip().compress(file_path, tmp_zip_file) |
| 52 | |
| 53 | # 获取一个八位的随机码作为文件名,防止重名 |
| 54 | file_name = ''.join(random.sample(string.ascii_letters + string.digits, 8)) |
| 55 | file_server = RetryFileServer(retry_times=2).get_server() |
| 56 | file_server.upload_file(tmp_zip_file, f"sourcedir/{file_name}") |
| 57 | PathMgr().rmpath(tmp_zip_file) |
| 58 | item['download_name'] = file_name |
| 59 | return { |
| 60 | 'isP2P': False, |
| 61 | 'path_list': path_list |
| 62 | } |
| 63 | |
| 64 | def download_file(self, transfer_info): |
| 65 | ''' |
no test coverage detected