一个 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=autoauto(默认,小图走 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 仓库删除对应文件,同时清掉列表缓存。