FIT2CLOUD
随机图片 API 的图标

随机图片 API

253
43

从指定存储策略与附件分组中随机返回一张图片。支持配置多条 API 路径规则,访问路径时 302 跳转到随机附件。

1.1.0
泡泡🫧 发布于

1.1.0

最新
>=2.27.0

本次新增按规则配置的定时刷新,可实现「每日一图」「每小时换图」等场景。

新功能

  • 每条规则新增「刷新方式」:每次请求随机(默认)、每分钟、每小时、每天、每周、自定义秒数
  • 周期内访问同一路径固定返回同一张图片,到达自然周期边界自动换图
    • 每天:服务器本地 0 点
    • 每周:服务器本地周一 0 点
    • 每小时 / 每分钟:本地整点 / 整分钟
  • 自定义秒数范围 1–31536000,按 Unix 时间戳对齐
  • 无状态时间窗口实现:不需要后台任务或持久化,插件重启、多实例部署结果一致
  • 旧配置无需迁移,未设置刷新方式的规则保持每次请求随机

修复与改进

  • 分钟 / 小时窗口正确处理 DST 回拨(重复小时获得不同窗口)及 UTC+5:30 等非整点时区
  • 跳过 metadata / name 异常附件,避免单条畸形数据导致整池加载失败
  • 附件名单按名称哈希排序并预计算哈希,缓存重载不影响周期内图片映射

资源下载

  • random-image-api-1.1.0.jar
1.0.1
泡泡🫧 发布于
>=2.27.0

本次为性能与稳定性更新,行为与 1.0.0 保持一致。

变更

  • 随机选图改用索引采样:每次请求最多抽取 3 个互不重复的候选下标,不再复制整张附件名单,降低高并发下的内存分配
  • 附件名单以只读视图缓存,供并发请求共享,避免就地修改
  • 新增测试覆盖重试候选不重复、重试次数不超过名单数量、缓存名单不被消费
  • 修正文档:no-store 等缓存头仅作用于 302 响应,目标图片的缓存策略由存储服务与 CDN 决定

资源下载

  • random-image-api-1.0.1.jar
1.0.0
泡泡🫧 发布于
>=2.27.0

首个公开发布版本。

  • 按配置的 API 路径随机返回附件图片,并以 302 跳转到公开访问地址
  • 支持多条规则,可按存储策略和附件分组过滤
  • 自动排除隐藏分组(如头像)以及 SVG、XML、HTML 等非安全图片类型
  • 附件名单短时缓存并合并并发查询,修改配置后即时生效
  • 兼容本地存储、S3、OSS 等所有 Halo 存储策略

资源下载

  • random-image-api-1.0.0.jar