宏尘极客 发布于
>=2.26.0
更新日志
本次升级要点
本次更新以微信素材缓存体系为主线:新增素材上传缓存,避免同一张图反复上传挤占微信素材库;配套补齐了缓存库的自动备份、每日清理、失效自愈与凭据脱敏;同时新增「一级标题对齐方式」配置项,并在同步任务记录中留存文章标题。
- 重复同步同一篇文章时,图片上传次数显著下降,微信素材库占用更可控
- 缓存库有了备份与自动回收,长期运行不再无限增长
- 封面素材在微信侧被删除导致的 40007 失败,现在能自动自愈
- 日志与任务失败原因中的 access_token 等凭据已脱敏,避免凭据泄露
新增功能
1. 微信素材上传缓存
- 按文件内容指纹缓存已上传素材,同一份文件只向微信上传一次,之后直接复用
media_id/图片地址 - 命中缓存后仍会校验资源是否真实存在:
- 正文图片:校验微信图片地址(HEAD 请求,不走代理)
- 永久素材:用
material/get_material查询素材本身
- 校验结果为三态(明确存在 / 明确不存在 / 无法判定),只有「明确存在」才复用;失效或判定不出结论时重新上传,宁可多传一份,也不让草稿发不出去
- 新增接口调用支持。若启用代理,请同步配置
material/get_material接口的代理规则。
2. 媒体缓存库每日自动备份
- 时间:每天 1 点
- 方式:SQLite VACUUM INTO 生成一致快照
- 位置:
<插件数据目录>/backups - 轮转:只保留最新 3 份
- 备份失败仅记录日志,不影响缓存读写与文章同步
3. 新增 MCP 工具
| 工具(本地名) | 类型 | 参数 | 说明 |
|---|---|---|---|
wechat_sync_preview |
只读 | postName |
获取预览信息:按与同步一致的规则美化正文,返回美化后的正文 HTML、上传后实际使用的标题(64 字上限)、摘要(120 字)、作者(8 字)、原文链接(阅读原文)与留言设置,以及因超过微信长度上限被截断的字段名;不调用微信接口、不写任何数据,可反复调用 |
wechat_sync_submit |
写操作 | postName |
提交同步到微信:先做提交前预检(微信配置、封面图、文章是否正在同步中),通过后创建后台同步任务并立即返回;同步时封面与正文图片会自动转存到微信素材库、正文按公众号排版美化,完成后可在公众号草稿箱看到草稿 |
wechat_sync_status |
只读 | postName |
查询同步状态:返回该文章最近一次同步的状态与说明——PENDING(已提交、正在后台执行)/ SUCCESS(已写入公众号草稿箱)/ FAILED(失败,message 为微信返回的失败原因)/ NONE(尚未同步过);只读取任务记录,不调用微信接口、不写任何数据,提交同步后可用它轮询结果 |
wechat_cache_cleanup |
写操作 | 无 | 清理素材缓存:立即执行一次素材缓存清理(与每天 0 点的计划任务同一套规则),返回本次删除条数与生效的保留策略——deletedRecords(删除条数)、remainingRecords(剩余记录数)、retentionDays(生效的保留策略:保留天数,如 "30";「全部保留」时为 never)、cutoff(判定时间);只删除「超过保留期且最近未被使用」的记录,仍被复用的缓存不会误删,也不影响每天 0 点的自动清理 |
4. 支持配置一级标题(H1)对齐方式
- 配置项:正文美化 → 一级标题对齐方式(
h1Align) - 取值:左对齐 / 居中 / 右对齐,默认居中
- 正文中 H1 若已自带对齐方式(行内
text-align或align属性),保持原样,本项不生效
5. 任务记录留存提交时的文章标题
- 任务落到终态
(SUCCESS / FAILED)后,输入快照会被清空以释放正文 HTML 占用的数据库空间 - 文章标题现独立保存在任务记录
spec.postTitle上,快照清空后仍能在任务列表里认出「这条任务是哪篇文章」
问题修复
- 凭据可能写入日志与任务失败原因:新增脱敏处理,
access_token、secret、appsecret、authorization、sign、password等键的值统一替换为 ***;接口名与参数名保留,不影响排查。appid 为公开标识,不做脱敏
升级注意事项
- 目录权限:新增 SQLite 缓存库与 backups 备份目录,插件数据目录需具备写权限;备份轮转只保留 3 份,磁盘占用可控
- 容器部署确认时区:清理(0 点)与备份(1 点)按 JVM 本地时间触发,请确保容器的 TZ / 系统时区设置正确,否则会按 UTC 执行
- 反向代理需放行
material/get_material:未放行时永久素材校验会「无法判定」,插件将保守地重新上传封面——功能不受影响,但会增加素材库占用与上传耗时 - 日志中的凭据已脱敏:access_token 等显示为 ***,属预期行为,非异常
- MCP 客户端可接入
- 无需数据迁移:缓存库为空时会自动建立,并在首次同步中填充,不影响已有同步任务记录
Full Changelog: 1.7.0...1.8.0
Generated from 1.8.0
资源下载
- plugin-wechat-official-sync-1.8.0.jar
