Skip to content

Releases

v1.1.0

Choose a tag to compare

@litxiaoxi litxiaoxi released this 10 Nov 12:01

随机图片 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

Choose a tag to compare

@litxiaoxi litxiaoxi released this 05 Nov 15:21

随机图片 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

Choose a tag to compare

@litxiaoxi litxiaoxi released this 04 Nov 08:56

随机图片 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。