类 BackupController
java.lang.Object
net.sohelp.boot.admin.core.base.BaseController
net.sohelp.boot.dev.web.ops.backup.BackupController
@RestController("dev-ops-backup")
@RequestMapping("/dev/ops/backup")
public class BackupController
extends BaseController
备份控制器
提供数据库备份与恢复接口,用于管理系统中数据库备份与恢复功能。
包含备份的触发、停止、列表查询、下载、删除以及恢复等操作。
- 从以下版本开始:
- 2026/01/01 21:23
- 作者:
- AaronFung
-
字段概要
从类继承的字段 net.sohelp.boot.admin.core.base.BaseController
request, response -
构造器概要
构造器 -
方法概要
修饰符和类型方法说明触发备份任务 启动一个新的线程执行数据库和资源的备份操作。void定时检查并执行自动备份任务 每分钟触发一次,检查是否满足自动备份条件(频率、时间)。删除备份记录 逻辑删除数据库记录,并物理删除对应的备份文件。void下载备份文件 根据ID下载对应的备份文件(ZIP格式)。获取数据库配置信息 用于前端显示数据库连接信息(已脱敏)。获取备份列表分页数据 根据条件查询备份记录,支持按类型、时间范围过滤。restore(org.springframework.web.multipart.MultipartFile file) 上传并恢复备份 接收上传的备份文件并执行恢复操作。restoreFromRecord(Map<String, String> body) 从已有记录恢复 根据备份记录ID查找对应的备份文件并执行恢复。saveConfig(Map<String, Object> config) 保存备份配置 更新系统的备份策略配置,如自动备份频率、时间等。停止备份/恢复任务 根据任务ID停止正在运行的备份或恢复任务。从类继承的方法 net.sohelp.boot.admin.core.base.BaseController
error, error, fail, fail, fail, getLoginID, getLoginName, getLoginOrgID, getLoginOrgName, getLoginUser, getNickname, getTenantId, getUserName, getUserNo, i18n, i18n, isAdministrator, isDeveloper, limit, offset, ok, ok, response, response, responseStream, success, success, success, success, validateToken
-
构造器详细资料
-
BackupController
public BackupController()
-
-
方法详细资料
-
backup
@PostMapping("/backup") @Permission("ADMIN") public ApiResult<String> backup(@RequestParam(defaultValue="MANUAL") String type) 触发备份任务 启动一个新的线程执行数据库和资源的备份操作。- 参数:
type- 备份类型:MANUAL(手动), AUTO(自动), BEFORE_RESTORE(恢复前)- 返回:
- 返回操作结果,成功提示"备份任务已启动"
-
stop
@PostMapping("/stop") @Permission("ADMIN") public ApiResult<String> stop(@RequestBody Map<String, String> body) 停止备份/恢复任务 根据任务ID停止正在运行的备份或恢复任务。 会尝试终止关联的进程并中断执行线程。- 参数:
body- 请求体,包含任务ID (key: "id")- 返回:
- 返回操作结果,成功提示"停止指令已发送"
-
page
@GetMapping("/page") @Permission("ADMIN") public ApiResult<Pager<Map<String,Object>>> page(@RequestParam Map<String, Object> params) 获取备份列表分页数据 根据条件查询备份记录,支持按类型、时间范围过滤。- 参数:
params- 查询参数: - page: 当前页码 (默认1) - limit: 每页条数 (默认20) - type: 备份类型 - startTime: 开始时间 - endTime: 结束时间- 返回:
- 返回分页数据 Pager 对象
-
download
@GetMapping("/download") @Permission("ADMIN") public void download(@RequestParam String id, jakarta.servlet.http.HttpServletResponse response) throws IOException 下载备份文件 根据ID下载对应的备份文件(ZIP格式)。- 参数:
id- 备份记录IDresponse- HTTP响应对象,用于写入文件流- 抛出:
IOException- IO异常
-
delete
@PostMapping("/delete") @Permission("ADMIN") public ApiResult<String> delete(@RequestBody Map<String, String> body) 删除备份记录 逻辑删除数据库记录,并物理删除对应的备份文件。- 参数:
body- 请求体,包含备份记录ID (key: "id")- 返回:
- 返回操作结果
-
getConfig
获取数据库配置信息 用于前端显示数据库连接信息(已脱敏)。- 返回:
- 返回包含数据库配置的Map对象
-
restore
@PostMapping("/restore") @Permission("ADMIN") public ApiResult<String> restore(@RequestParam("file") org.springframework.web.multipart.MultipartFile file) throws IOException 上传并恢复备份 接收上传的备份文件并执行恢复操作。- 参数:
file- 上传的备份文件 (sql或zip)- 返回:
- 返回操作结果,成功提示"恢复任务已启动"
- 抛出:
IOException- IO异常
-
restoreFromRecord
@PostMapping("/restoreFromRecord") @Permission("ADMIN") public ApiResult<String> restoreFromRecord(@RequestBody Map<String, String> body) 从已有记录恢复 根据备份记录ID查找对应的备份文件并执行恢复。- 参数:
body- 请求体,包含备份记录ID (key: "id")- 返回:
- 返回操作结果,成功提示"恢复任务已启动"
-
saveConfig
@PostMapping("/saveConfig") @Permission("ADMIN") public ApiResult<String> saveConfig(@RequestBody Map<String, Object> config) throws Exception保存备份配置 更新系统的备份策略配置,如自动备份频率、时间等。- 参数:
config- 包含配置项的Map对象- 返回:
- 返回操作结果,成功提示"保存成功"
- 抛出:
Exception- 保存过程中可能出现的异常
-
checkAndRunBackupTask
@Scheduled(fixedDelay=60000L) public void checkAndRunBackupTask()定时检查并执行自动备份任务 每分钟触发一次,检查是否满足自动备份条件(频率、时间)。 如果满足条件且当天未执行过,则触发自动备份。
-