最近用宝塔面板API的功能做了个APP,现在把整理的API接口分享给大家。
/// 获取系统基础统计
static const apiGetSystemTotal = "/system?action=GetSystemTotal";
/// 获取磁盘分区信息
static const apiGetDiskInfo = "/system?action=GetDiskInfo";
/// 获取实时状态信息(CPU、内存、网络、负载)
static const apiGetNetWork = "/system?action=GetNetWork";
/// 检查是否有安装任务
static const apiGetTaskCount = "/ajax?action=GetTaskCount";
/// 检查面板更新
static const apiUpdatePanel = "/ajax?action=UpdatePanel";
/// 获取网站列表
static const apiGetSites = "/data?action=getData&table=sites";
/// 获取网站分类
static const apiGetSiteTypes = "/site?action=get_site_types";
/// 获取已安装的 PHP 版本列表
static const apiGetPHPVersion = "/site?action=GetPHPVersion";
/// 创建网站
static const apiAddSite = "/site?action=AddSite";
/// 删除网站
static const apiDeleteSite = "/site?action=DeleteSite";
/// 停用网站
static const apiSiteStop = "/site?action=SiteStop";
/// 启用网站
static const apiSiteStart = "/site?action=SiteStart";
/// 网站到期时间
static const apiSetEdate = "/site?action=SetEdate";
/// 修改网站备注
static const apiSetSitePs = "/data?action=setPs&table=sites";
/// 获取网站备份列表
static const apiGetBackup = "/data?action=getData&table=backup";
/// 创建网站备份
static const apiToBackup = "/site?action=ToBackup";
/// 删网站备份
static const apiDelBackup = "/site?action=DelBackup";
/// 获取网站的域名列表
static const apiGetDataDomain = "/data?action=getData&table=domain";
/// 获取FTP
static const apiGetDataFtps = "/data?action=getData&table=ftps";
/// 获取数据库
static const apiGetDataDatabases = "/data?action=getData&table=databases";
/// 添加数据库
static const apiAddDataDatabase = "/database?action=AddDatabase";
/// 添加域名
static const apiAddDomain = "/site?action=AddDomain";
/// 删除域名
static const apiDelDomain = "/site?action=DelDomain";
/// 获取可选的预定义伪静态列表
static const apiGetRewriteList = "/site?action=GetRewriteList";
/// 获取指定预定义伪静态规则内容(获取文件内容)
static const apiGetFileBody = "/files?action=GetFileBody";
/// 保存伪静态规则内容(保存文件内容)
static const apiSaveFileBody = "/files?action=SaveFileBody";
/// 取回指定网站的根目录
static const apiGetSiteKeyPath = "/data?action=getKey&table=sites&key=path";
/// 取回防跨站配置/运行目录/日志开关状态/可设置的运行目录列表/密码访问状态
static const apiGetDirUserINI = "/site?action=GetDirUserINI";
/// 设置防跨站状态(自动取反)
static const apiSetDirUserINI = "/site?action=SetDirUserINI";
/// 设置是否写访问日志
static const apiSetLogsOpen = "/site?action=logsOpen";
/// 修改网站根目录
static const apiSetPath = "/site?action=SetPath";
/// 设置是否写访问日志
static const apiSetSiteRunPath = "/site?action=SetSiteRunPath";
/// 设置密码访问
static const apiSetHasPwd = "/site?action=SetHasPwd";
/// 关闭密码访问
static const apiCloseHasPwd = "/site?action=CloseHasPwd";
/// 获取流量限制相关配置(仅支持 nginx)
static const apiGetLimitNet = "/site?action=GetLimitNet";
/// 开启或保存流量限制配置(仅支持 nginx)
static const apiSetLimitNet = "/site?action=SetLimitNet";
/// 关闭流量限制(仅支持 nginx)
static const apiCloseLimitNet = "/site?action=CloseLimitNet";
/// 取默认文档信息
static const apiGetIndex = "/site?action=GetIndex";
/// 设置默认文档
static const apiSetIndex = "/site?action=SetIndex";
/// 获取文件
static const apiGetDir = "/files?action=GetDir";
/// 创建数据库备份
static const apiDatabaseToBackup = "/database?action=ToBackup";
/// 重置密码
static const apiResDatabasePassword = "/database?action=ResDatabasePassword";
/// 删除数据库
static const apiDeleteDatabase = "/database?action=DeleteDatabase";
/// 修改数据库备注
static const apiSetDatabasePs = "/data?action=setPs&table=databases";
/// 删除文件
static const apiDeleteFile = "/files?action=DeleteFile";
/// 恢复数据库
static const apiInputSql = "/database?action=InputSql";
/// 添加FTP
static const apiAddFtpUser = "/ftp?action=AddUser";
/// 停用启用FTP
static const apiFtpStatus = "/ftp?action=SetStatus";
/// 设置FTP密码
static const apiFtpSetUserPassword = "/ftp?action=SetUserPassword";
/// 删除FTP用户
static const apiFtpDeleteUser = "/ftp?action=DeleteUser";
/// 新建目录
static const apiFileCreateDir = "/files?action=CreateDir";
/// 新建文件夹
static const apiFileCreateFile = "/files?action=CreateFile";
/// 移动文件
static const apiFileMvFile = "/files?action=MvFile";
/// 复制文件
static const apiFileCopyFile = "/files?action=CopyFile";
/// 压缩文件
static const apiFileZip = "/files?action=Zip";
/// 解压文件
static const apiFileUnZip = "/files?action=UnZip";
/// 面板操作日志
static const apiGetLogs = "/data?action=getData&table=logs&tojs=getLogs";
/// 面板运行日志
static const apiGetRunLogs = "/config?action=get_panel_error_logs";
/// 计划任务日志
static const apiGetTaskLogs = "/crontab?action=GetLogs";
/// 获取计划任务
static const apiGetCronTab = "/data?action=getData&table=crontab";
/// 网站操作日志
static const apiGetSiteLogs = "/logs/panel/get_logs_bytype";
/// 网站运行日志
static const apiGetSiteRunLogs = "/site?action=GetSiteLogs";
/// 网站错误日志
static const apiGetSiteErrLogs = "/site?action=get_site_errlog";
/// 端口规则
static const apiGetPortRulesList = "/safe/firewall/get_rules_list";
/// 端口转发
static const apiGetPortForwardsList = "/safe/firewall/get_forward_list";
/// IP规则
static const apiGetIPRulesList = "/safe/firewall/get_ip_rules_list";
/// 地区规则
static const apiGetCountryRulesList = "/safe/firewall/get_country_list";
/// 创建端口规则
static const apiCreatePortRuleList = "/safe/firewall/create_rules";
/// 删除端口规则
static const apiDeleteortRuleList = "/safe/firewall/remove_rules";
/// 删除端口规则
static const apiModifyPortRule = "/safe/firewall/modify_rules";
/// 创建IP规则
static const apiCreateIpRule = "/safe/firewall/create_ip_rules";
/// 删除IP规则
static const apiDeleteIpRule = "/safe/firewall/remove_ip_rules";
/// 删除IP规则
static const apiModifyIpRule = "/safe/firewall/modify_ip_rules";
/// 创建端口转发规则
static const apiCreateForward = "/safe/firewall/create_forward";
/// 删除端口转发规则
static const apiDeleteForward = "/safe/firewall/remove_forward";
/// 删除端口转发规则
static const apiModifyForward = "/safe/firewall/modify_forward";
/// 创建地区规则
static const apiCreateCountry = "/safe/firewall/create_country";
/// 删除地区规则
static const apiDeleteCountry = "/safe/firewall/remove_country";
/// 修改地区规则
static const apiModifyCountry = "/safe/firewall/modify_country";
/// 获取国家列表
static const apiGetCountrys = "/safe/firewall/get_countrys";
/// 获取防火墙信息
static const apiGetFirewallInfo = "/safe/firewall/get_firewall_info";
/// 获取SSH信息
static const apiGetSshInfo = "/safe/ssh/GetSshInfo";
/// 禁ping设置
static const apiSetPing = "/firewall?action=SetPing";
/// 防火墙开关设置
static const apiFirewallAdmin = "/safe/firewall/firewall_admin";
/// SSH开关设置
static const apiSetSSH = "/firewall?action=SetSshStatus";
/// 启动计划任务
static const apiStartTask = "/crontab?action=StartTask";
/// 设置计划任务状态
static const apiSetTaskStatus = "/crontab?action=set_cron_status";
/// 删除计划任务状态
static const apiDelCrontab = "/crontab?action=DelCrontab";
/// 计划任务
static const apiGetCrontabList = "/crontab?action=GetCrontab";
/// 释放内存
static const apiReMemory = "/system?action=ReMemory";
/// 获取配置
static const apiGetConfig = "/config?action=get_config";
/// 配置面板
static const apiSetPanel = "/config?action=setPanel";
/// 负载
static const apiGetLoadAverage = "/ajax?action=get_load_average";
/// CPU 内存
static const apiGetCpuIo = "/ajax?action=GetCpuIo";
/// 磁盘IO
static const apiGetDiskIo = "/ajax?action=GetDiskIo";
/// 网络IO
static const apiGetNetWorkIo = "/ajax?action=GetNetWorkIo";
/// 获取监控状态
static const apiSetControl = "/config?action=SetControl";
/// 获取软件列表
static const apiGetSoftList = "/plugin?action=get_soft_list";
/// 卸载软件
static const apiUnstallPlugin = "/plugin?action=uninstall_plugin";
/// 服务管理
static const apiServiceAdmin = "/system?action=ServiceAdmin";
/// 网站数据获取
static const apiGetDataList = "/crontab?action=GetDataList";
/// 数据库数据获取
static const apiGetDataBaseList = "/crontab?action=GetDatabases";
/// 添加计划任务
static const apiAddCrontab = "/crontab?action=AddCrontab";
/// 查询计划任务
static const apiGetCrondFind = "/crontab?action=get_crond_find";
/// 修改计划任务
static const apiModifyCrond = "/crontab?action=modify_crond";
/// 远程下载
static const apiDownloadFile = "/files?action=DownloadFile";
#上传文件,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