具体实现代码如下:
def upload_zip_file(file_absolute_path):
file_name = os.path.split(file_absolute_path)[-1]
upload_bug_file = (file_name, open(file, 'rb'), 'application/zip')
m = MultipartEncoder(
fields={'file_name': file_name, 'file_path': upload_bug_file}
)
print("脚本上传文件:%s" % file)
resp = requests.post(url=SERVER_IP + UPLOAD_FILE, data=m, headers={'Content-Type': m.content_type})
print("上传file -=-=- status_code: %s, resp_text: %s" % (resp.status_code, resp.text))
上传参数
在fields中定义的(‘file_name’,‘file_path’)参数对应的是api要求上传的request.data的参数。
这些参数在api的filter_fields = (‘file_name’,),filter_fields这个字段定义必须上传的请求参数。
zip文件
zip文件信息存储在一个数组中,依次是文件名,文件,文件类型。
必须将zip文件封装在MultipartEncoder;如果将zip数组直接放在data字典中报错上传不是一个文件;如果将open()打开文件直接放在data字典中,则会报错上传超出最大size