一个 URL,随机一张图。
每次请求 /api/random 都会从图库里随机返回一张图片。图片存在 GitHub 仓库,API 跑在 Cloudflare Workers,前端在 Pages。
API 文档
所有接口支持跨域,可直接在任意页面引用
GET
/api/random
随机图片,默认 302 跳转到图片地址
最常用的一条。直接当 <img src> 用:
<img src="" alt="随机图">
参数:
| 参数 | 说明 |
|---|---|
| json=1 | 返回 JSON(含文件名、大小、直链),不跳转 |
| count=3 | 一次返回多张,1–20,配合 json=1 使用 |
| prefix=nature | 只从文件名以 nature 开头的图片里随机 |
| tag=cat | 只从文件名包含 cat 的图片里随机 |
| src=auto | auto(默认,小图走 jsDelivr、大图走 raw)/ jsdelivr / raw / proxy(走 Worker 边缘缓存) |
示例:
# 直接拿到一张图(302) curl -L "" # 要 JSON curl "?json=1" # 分类 + 一次三张 curl "?json=1&count=3&prefix=nature"
GET
/api/list
列出全部图片
返回所有图片的 name / path / size / url。加 ?fresh=1 跳过 60 秒缓存,?url=0 不生成链接。
curl ""
GET
/api/stats
图库统计
返回图片总数、总占用体积、最大单文件体积。适合做监控或首页展示。
GET
/img/:name
图片代理(带边缘缓存)
由 Worker 直接从 GitHub 拉取并缓存一年。国内访问 raw.githubusercontent.com 不稳的时候用这个,只要你的 Worker 域名能访问就行。
<img src="">
POST
/api/auth
后台登录,换 token
请求体 { "password": "..." },成功返回 { token, exp },有效期 7 天。后续写操作带上 Authorization: Bearer <token>。
POST
/api/upload
上传(需 token)
请求体 { "filename": "cat.jpg", "content": "<base64>" }。同名文件会被覆盖。前端页面的「压缩上传 / 无损上传」区别在于 content 是压缩后的数据还是原始文件数据 —— 服务端不做任何二次压缩,收到什么就原样提交给 GitHub。
DELETE
/api/delete?name=cat.jpg
删除(需 token)
从 GitHub 仓库删除对应文件,同时清掉列表缓存。