#上传文件,file_path,ypath,lpath分别为文件名,宝塔路径,本地路径
def Get_upload(self,file_path,ypath,lpath):
#拼接URL地址
url = self.__BT_PANEL + '/files?action=upload' #网址拼接
p_data = self.__get_key_data() #取签名
p_data['f_path'] = ypath
p_data['f_name'] =ypath+file_path
p_data['f_size'] =os.path.getsize(file_path)
p_data['f_start'] =0
p_data['blob'] =(file_path,open(os.path.join(lpath,file_path),'rb'),'application/octet-stream')
#请求面板接口
header = {}
header['Accept']='*/*'
header['Accept-Encoding']='zh-CN,zh;q=0.9'
header['Connection']='keep-alive'
result = requests.post(url,headers=header,data=p_data,files=p_data)
print(result.text)
#解析JSON数据
return json.loads(result)
#下载文件,file_path,ypath,lpath分别为文件名,宝塔路径,本地路径
def Get_download(self,filename,ypath,lpath):
#拼接URL地址
url = self.__BT_PANEL + '/download?filename='
#准备POST数据
p_data = self.__get_key_data() #取签名
downurl=url+os.path.join(ypath,filename).replace('/','%2F').replace('\\','%2F')
result = requests.get(downurl,p_data)
print(result.text)
if result.status_code == 200:
with open(lpath+filename, 'wb') as file:
file.write(result.content)
print('下载成功!')
else:
print(f'下载失败,状态码: {result.status_code}')
return result.status_code,filename
|
|