宝塔面板API整理

最近用宝塔面板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