开发与架构
适用版本 1.0.4 | 面向二次开发与源码阅读
插件由「Java 后端 + Vue 3 控制台扩展」两部分组成,构建产物是一个 Halo 插件 JAR。许可证为 GPL-3.0。
环境
构建
前端产物需要手动拷贝到
src/main/resources/console/,否则打出来的 JAR 里还是旧的控制台资源。
目录结构
技术架构
扩展点与配置
- 存储策略:
extensions/policy-template.yaml定义策略表单(apiUrl/token/bucketId/tagId),对应storage.halo.run/v1alpha1的PolicyTemplate - 插件设置:
extensions/settings.yaml(oneimg-sync-v2),当前无表单项,同步入口在自定义标签页 - 插件元数据:
plugin.yaml,要求 Halo ≥ 2.25.0
二次开发提示
- 修改策略字段时,
policy-template.yaml与后端读取配置的代码要同步改,否则新字段不会生效 - 同步逻辑涉及「导入 + 反向清理」两步,改动时先确认删除范围,避免误删附件记录
- 图床 API 变更时需要同时调整上传与同步两处调用
- 前端产物是 IIFE 构建,拷贝路径写错是最常见的「改了没生效」原因
上游项目
初春图床本体:https://github.com/onexru/oneimg(Go + Vue 3,支持本地 / S3 / WebDAV / FTP 存储,上传自动转 WebP)