ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Portabase API v1 开发指南:用 x-api-key 实现数据库备份流程完全自动化

Portabase API v1 开发指南:用 x-api-key 实现数据库备份流程完全自动化 【免费下载链接】portabasePortabase - Database backup restore tool for PostgreSQL, MySQL, MsSQL, MariaDB, Firebird SQL, SQLite, MongoDB, Redis and Docker Volume项目地址https://gitcode.com/gh_mirrors/por/portabase点击查看免费下载Portabase 是一款开源的多数据库备份与恢复平台支持 PostgreSQL、MySQL、MsSQL、MariaDB、Firebird SQL、SQLite、MongoDB、Redis 及 Docker Volume 等。它的 API v1 提供了一套 RESTful 接口你只需在请求头中携带x-api-key就能用 curl、CI 任务或定时脚本完成创建备份 → 查询状态 → 自动恢复的全流程自动化彻底告别手动操作仪表盘。5 分钟快速上手第一个自动化备份整个 API 的入口统一是/api/v1所有接口都遵循同一套认证规则没有任何复杂的 OAuth 流程这对新手非常友好。Step 1创建 API Key登录 Portabase 仪表盘后打开个人资料的 API Keys 页面输入密钥名称并创建即可该界面源码位于 profile-api-keys.tsx。创建成功后请立即复制保存密钥只显示一次。Step 2发起请求所有请求只需在 Header 中带上x-api-keycurl -H x-api-key: 你的密钥 \ https://你的Portabase地址/api/v1/databasesStep 3看懂响应接口统一返回{ data: ... }结构出错时返回{ error: ... }并附带对应的 HTTP 状态码排查问题一目了然。API Key 鉴权机制Portabase 是怎么校验你的身份的认证逻辑集中在中间件 middleware.ts 中它会把你的密钥交给 Better Auth 的verifyApiKey进行校验然后做四件事验证密钥密钥缺失返回401无效/过期返回401触发限频返回429解析身份从密钥反查出对应用户账号被封禁返回403加载权限自动计算该用户所属各个组织的角色权限访问控制后续每个接口都会根据组织权限判断你能操作哪些 Agent、项目和数据库——API Key 的权限永远不超过账号本身安全可控。密钥方案的定义见 security.tsOpenAPI 文档中已明确声明API key generated from the Portabase dashboard. Pass as thex-api-keyheader.备份自动化的核心接口一览功能方法端点说明列出数据库GET/api/v1/databases获取账号可访问的全部数据库触发备份POST/api/v1/databases/{id}/backup创建一个waiting状态备份任务备份列表GET/api/v1/databases/{id}/backup按创建时间倒序返回全部备份备份详情GET/api/v1/databases/{id}/backup/{backupId}包含各存储通道storages状态查询状态GET/api/v1/databases/{id}/status最近一次备份/恢复 在线情况配置定时PUT/api/v1/databases/{id}/backup-policy用 cron 表达式设置自动备份周期执行恢复POST/api/v1/databases/{id}/restore指定备份与其存储通道执行恢复列出 AgentGET/api/v1/agents查看备份 Agent 运行情况Agent 密钥GET/api/v1/agents/{id}/key获取 Agent 的边缘密钥对应源码backup 路由、restore 路由、backup-policy 路由、status 路由。完整实战从触发到恢复的五步自动化流程把下面的接口按顺序串起来就是一个完整的无人值守备份恢复流水线。① 找到目标数据库 IDcurl -H x-api-key: $KEY https://你的地址/api/v1/databases # 返回中挑选 database.id② 触发一次备份curl -X POST -H x-api-key: $KEY \ https://你的地址/api/v1/databases/123e4567-e89b-12d3-a456-426614174000/backup # 201 返回 {data:{id:...,status:waiting,...}}⚠️ 如果该库已有备份在排队或执行中接口会返回409这是内置的防重保护脚本里直接捕获 409 即可。③ 轮询备份状态curl -H x-api-key: $KEY \ https://你的地址/api/v1/databases/123e4567.../status返回的latestBackup状态从waiting → ongoing → success/failed循环轮询直到终态即可建议间隔 10~30 秒。④ 拿到 backupId 和 backupStorageIdcurl -H x-api-key: $KEY \ https://你的地址/api/v1/databases/123e4567.../backup/备份ID备份详情中storages数组里的条目即为各存储通道本地、S3、Google Drive 等的落地情况恢复时必须引用其中status: success的那一条。⑤ 一键恢复curl -X POST -H x-api-key: $KEY -H Content-Type: application/json \ -d {backupId:备份ID,backupStorageId:存储ID} \ https://你的地址/api/v1/databases/123e4567.../restore恢复路由 restore/route.ts 会做三重校验备份必须属于该数据库、存储必须成功、备份文件必须真实存在任何一项不满足都会以404/409/422明确拒绝帮你把风险挡在自动化脚本之外。用 Cron 表达式实现周期性自动备份除了手动触发你还可以直接通过 API 配置计划任务让 Portabase 按周期自动备份curl -X PUT -H x-api-key: $KEY -H Content-Type: application/json \ -d {schedule:0 3 * * *} \ https://你的地址/api/v1/databases/123e4567.../backup-policyschedule支持标准 cron 表达式例如0 3 * * *表示每天凌晨 3 点表达式合法性由 cron.ts 校验传错会直接返回 400。传空字符串则关闭定时。设置完成后脚本连触发这一步都不再需要。在浏览器里边看边调内置 OpenAPI 文档不想背接口Portabase 内置了完整的交互式文档文档页面/api/v1/docsSwagger UI见 docs/route.ts规范文件/api/v1/openapiOpenAPI 3.0 JSON由 spec.ts 动态生成文档中每个接口都标注了apiKeyAuth安全方案在页面上填入你的 x-api-key 后可以直接在线调试。此外如果你使用 AI 编程工具还可以把同一套 x-api-key 接入 MCP 接口mcp/route.ts让 AI 助手直接帮你管理备份。常见状态码与避坑清单状态码含义建议处理401缺少或无效 API Key检查x-api-key头是否拼写正确、密钥是否被吊销403无组织/系统权限确认该账号在对应组织中的角色权限404数据库/备份不存在先用 GET 接口确认 ID 是否正确409已有备份/恢复任务进行中或文件缺失等待当前任务结束或换一个成功的存储通道422备份存储未成功不能恢复只选择status: success的存储429触发限频脚本中加入退避重试新手最易踩的三个坑密钥只在创建时显示一次丢了只能吊销重建同一数据库同时只允许一个备份/恢复任务脚本必须处理409恢复时引用的必须是storages中成功落地的那条记录而不是备份 ID 本身。写在最后Portabase 的 API v1 用「一个 Header 认证 一组 REST 接口」就把多数据库的备份恢复变成了可编程的流程5 分钟完成首次调用配合 cron 定时策略即可实现全自动无人值守。建议从 README.md 了解部署方式再到/api/v1/docs边调边学逐步把备份流水线接入你的 CI/CD 体系。赞分享【免费下载链接】portabasePortabase - Database backup restore tool for PostgreSQL, MySQL, MsSQL, MariaDB, Firebird SQL, SQLite, MongoDB, Redis and Docker Volume项目地址https://gitcode.com/gh_mirrors/por/portabase点击查看免费下载相关推荐SpaceX-API数据库备份策略自动化与验证流程SpaceX API数据库备份策略自动化与验证流程 为什么需要数据库备份 SpaceX API作为存储航天发射、火箭、核心级等关键数据的开源项目其数据完整后端API设计三步解锁123云盘VIP特权免费享受会员下载功能三步解锁123云盘VIP特权免费享受会员下载功能 你是否曾因为123云盘的大文件下载限制而烦恼想要下载超过1GB的文件却被告知需要付费会员今天我将为你介前端NATS.Net Key-Value Store完全指南分布式持久化键值存储实战NATS.Net Key Value Store完全指南分布式持久化键值存储实战 NATS.Key Value Store 是 NATS 官方 C 客户端 N创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进