Repository navigation
Releases
Releases · litxiaoxi/halo-plugin-random-image-api
v1.1.0
随机图片 API 1.1.0
本次新增按规则配置的定时刷新,可实现「每日一图」「每小时换图」等场景。
新功能
- 每条规则新增「刷新方式」:每次请求随机(默认)、每分钟、每小时、每天、每周、自定义秒数
- 周期内访问同一路径固定返回同一张图片,到达自然周期边界自动换图
- 每天:服务器本地 0 点
- 每周:服务器本地周一 0 点
- 每小时 / 每分钟:本地整点 / 整分钟
- 自定义秒数范围 1–31536000,按 Unix 时间戳对齐
- 无状态时间窗口实现:不需要后台任务或持久化,插件重启、多实例部署结果一致
- 旧配置无需迁移,未设置刷新方式的规则保持每次请求随机
修复与改进
- 分钟 / 小时窗口正确处理 DST 回拨(重复小时获得不同窗口)及 UTC+5:30 等非整点时区
- 跳过 metadata / name 异常附件,避免单条畸形数据导致整池加载失败
- 附件名单按名称哈希排序并预计算哈希,缓存重载不影响周期内图片映射
安装
从本 Release 下载 random-image-api-1.1.0.jar,在 Halo 控制台「插件 → 安装 → 本地上传」中选择该文件,启用后配置规则。
兼容性
- Halo >= 2.27.0
- Java 21
升级与卸载
升级不会修改附件,插件设置会保留;卸载不会删除任何附件。详细说明见 README。
v1.0.1
随机图片 API 1.0.1
本次为性能与稳定性更新,行为与 1.0.0 保持一致。
变更
- 随机选图改用索引采样:每次请求最多抽取 3 个互不重复的候选下标,不再复制整张附件名单,降低高并发下的内存分配
- 附件名单以只读视图缓存,供并发请求共享,避免就地修改
- 新增测试覆盖重试候选不重复、重试次数不超过名单数量、缓存名单不被消费
- 修正文档:
no-store等缓存头仅作用于 302 响应,目标图片的缓存策略由存储服务与 CDN 决定
安装
从本 Release 下载 random-image-api-1.0.1.jar,在 Halo 控制台「插件 → 安装 → 本地上传」中选择该文件,启用后配置规则。
兼容性
- Halo >= 2.27.0
- Java 21
升级与卸载
升级不会修改附件,插件设置会保留;卸载不会删除任何附件。详细说明见 README。
v1.0.0
随机图片 API 1.0.0
首个公开发布版本。
功能
- 按配置的 API 路径随机返回附件图片,并以 302 跳转到公开访问地址
- 支持多条规则,可按存储策略和附件分组过滤
- 自动排除隐藏分组(如头像)以及 SVG、XML、HTML 等非安全图片类型
- 附件名单短时缓存并合并并发查询,修改配置后即时生效
- 兼容本地存储、S3、OSS 等所有 Halo 存储策略
安装
从本 Release 下载 random-image-api-1.0.0.jar,在 Halo 控制台「插件 → 安装 → 本地上传」中选择该文件,启用后配置规则。
兼容性
- Halo >= 2.27.0
- Java 21
升级与卸载
升级不会修改附件,插件设置会保留;卸载不会删除任何附件。详细说明见 README。