WP AI1 OSS Auto Backup releases
wordpress 站点搭配all in one插件做阿里云oss自动云备份插件
by biancaplus · github.com/biancaplus/wp-ai1-oss-auto-backup · website
★ 0stars
2release downloads
0forks
Install
The author publishes release zips, so WP-CLI can install straight from GitHub:
wp plugin install https://github.com/biancaplus/wp-ai1-oss-auto-backup/releases/download/v1.0.1/wp-ai1-oss-auto-backup-1.0.1.zipReadme
WP AI1 OSS Auto Backup
将 All-in-One WP Migration(及 Pro)生成的 .wpress 备份,自动上传到独立的阿里云 OSS 私有 Bucket。支持定时调度、保留策略、上传日志、从 OSS 拉取回本地、远端存在性校验。
基本信息
- 作者:
biancaplus - 当前版本:
1.0.1 - WordPress:
5.8+ - PHP:
7.4+ - 许可证:GPL-2.0-or-later
- 后台入口:设置 → AI1 OSS 自动备份(仅管理员)
功能概览
| 能力 | 说明 |
|---|---|
| 独立 OSS 配置 | AccessKey / Endpoint / Bucket / 可选 Object 前缀;使用备份专用 Bucket |
| 自动上传 | 扫描 ai1wm-backups(或 AI1WM_BACKUPS_PATH)中的完整 .wpress |
| 半包保护 | 写入中的文件不会上传;写完后由后续 tick 续传 |
| 调度 | 每天 / 每周 / 每月 + 指定时刻;WP-Cron hourly tick |
| 单次上限 | 每轮最多上传 N 个包(默认 3),剩余下轮续传 |
| 保留策略 | OSS 滚动保留数 + 可选月度锚点(按文件名 YYYYMMDD 定月,每月最后一个包)+ 总地板 |
| 本地清理 | 可选:上传成功后删本地 .wpress;可选按保留数清理本地超额包 |
| 日志 | 成功 / 失败记录;固定约 180 天清理(仍属保留范围的 success 不删) |
| 拉取 | 从 OSS 拉回 All-in-One 备份目录;默认不覆盖,确认后可覆盖 |
| 远端校验 | 标记缺失的 .wpress;不自动重传;本地有完整包时可「重新上传」 |
| 异常可见 | 管理员全站后台红条(任务中断 / Job 失败 / 调度未执行) |
依赖
- All-in-One WP Migration(或 Pro):负责导出
.wpress - 阿里云 OSS SDK:默认复用已安装的
oss-aliyun插件中的 SDK(wp-content/plugins/oss-aliyun/sdk/vendor)。若站点没有该插件,需自行保证\OSS\OssClient可加载。
安装
- 将
wp-ai1-oss-auto-backup目录上传至/wp-content/plugins/。 - 在 WordPress 后台的「插件」页面启用 WP AI1 OSS Auto Backup。
- 进入 设置 → AI1 OSS 自动备份。
使用方法
1. 配置 OSS
在设置页填写:
- AccessKey ID / Secret
- Endpoint(如
oss-cn-hangzhou.aliyuncs.com,一般不带协议) - 备份专用 Bucket
- Object 路径前缀(可留空;留空则对象落在桶根)
- 若 ECS 与 OSS 同地域,可勾选内网 Endpoint
点击「测试 OSS 连接」确认可用后保存。
2. 配置调度与保留
- 调度模式:每天 / 每周 / 每月,并设置执行时刻
- 建议将本工具时刻设在 All-in-One 导出完成之后(例如 AI1WM 周六 03:00,本工具 04:00)
- 单次 Job 上限:控制每轮上传个数,避免一次拖垮 PHP
- OSS 滚动保留数:按一份
.wpress(一条成功上传日志)计,兼作总地板 - 可选:上传成功后删本地、清理 OSS/本地超额、启用月度锚点(按文件名日期每月留最后一个包)
3. 生产环境 Cron(强烈建议)
WP-Cron 依赖访问才能触发。生产环境请用系统 Cron 定期唤醒,例如每 5 分钟:
*/5 * * * * curl -fsS -o /dev/null "https://你的站点/wp-cron.php?doing_wp_cron"
若已设置 DISABLE_WP_CRON,则必须配置系统 Cron,否则定时上传不会执行。
4. 手动操作
- 立即执行上传:上传当前待传完整包(受单次上限约束)
- 刷新状态 / 清除任务锁:排查卡住的任务
- 日志:复制 OSS Key、拉取到本地、删除本地
.wpress、重新上传 - 校验远端对象:对成功日志做存在性检查并打标
- OSS 对象列表:列举前缀内
.wpress;可拉取、删除本地或删除 OSS
5. 与 All-in-One 联调
- 用 AI1WM 导出一份备份
- 确认文件出现在备份目录且已写完
- 在本插件点「立即执行上传」或等待调度
- 在 AI1WM「备份」页与本插件 OSS 列表对照;需要时可从 OSS「拉取到本地」后再用 AI1WM 还原
数据与权限
| 项 | 值 |
|---|---|
| 设置 Option | ai1_oss_auto_backup_settings(autoload=no) |
| 日志表 | {wpdb_prefix}ai1_oss_backup_logs |
| 任务锁 | ai1_oss_auto_backup_lock |
| 权限 | 仅 manage_options |
| 前台 | 无公开下载代理;桶应保持私有 |
停用插件会清除 WP-Cron 钩子,但保留设置与日志表。卸载插件默认仍保留设置与日志表,仅清除任务锁;可按需手工清理数据库。
安全提示
- AccessKey 仅管理员可见;页面与成功 JSON 不回传 Secret 明文
- 拉取 / 删除受 Object 前缀与
.wpress后缀约束 - OSS 清理采用「仅删本工具成功日志对应对象」策略,避免空前缀误扫桶
更新日志
1.0.1
- 月度锚点改为按备份文件名
YYYYMMDD定月,每月保留该月最后一个包(不再按上传完成时间)。 - 开启月度保留或上传成功后会重算锚点,便于补传历史包后正确挂上 6 月 / 7 月等锚点。
1.0.0
- 首次通用版发布。
- All-in-One
.wpress自动上传 OSS、调度、保留、日志、拉取与远端校验。
Read the full README on GitHub →