轻量级随机图片和视频服务,支持分类管理、批量获取、热重载,零数据库设计
./data/{type}/{size}/{category}.txt 文件(如
./data/images/pc/nature.txt),每行一个 URL
可视化在线预览界面,支持图片和视频的快速浏览与测试
| 功能 | 说明 |
|---|---|
| 资源类型切换 | 支持图片和视频两种类型 |
| 分类选择 | 动态加载并选择分类 |
| 随机加载 | 一键获取随机资源 |
| 键盘快捷键 | 空格/R/N/→ 快速加载新资源 |
访问地址: http://your-domain.com/preview
使用场景:
获取随机图片信息,支持指定分类、尺寸和批量获取
| 参数 | 类型 | 说明 |
|---|---|---|
category |
可选 | 分类名,留空或 "all" 随机分类 |
size |
可选 | 尺寸类型(如 pc、phone、square),留空或 "all" 随机尺寸 |
count |
可选 | 数量 1-20,默认 1 |
GET /api/random/image?category=wallpaper&size=pc&count=2
响应示例:
{
"success": true,
"count": 2,
"images": [
{
"url": "https://example.com/wallpaper1.jpg",
"category": "wallpaper",
"size": "pc"
},
{
"url": "https://example.com/wallpaper2.jpg",
"category": "wallpaper",
"size": "pc"
}
]
}
302 重定向到随机图片 URL,可直接嵌入 <img> 标签
| 参数 | 类型 | 说明 |
|---|---|---|
category |
可选 | 分类名 |
size |
可选 | 尺寸类型 |
<img src="/img?category=cat&size=phone" alt="随机图片">
响应:
HTTP/1.1 302 Found
Location: https://example.com/cat123.jpg
获取所有已加载的图片分类列表
GET /api/categories/image
响应示例:
{
"categories": [
"cat",
"wallpaper",
"anime"
],
"count": 3
}
获取所有已加载的图片尺寸类型列表
GET /api/sizes/image
响应示例:
{
"sizes": [
"pc",
"phone",
"square"
],
"count": 3
}
获取随机视频信息,支持指定分类、尺寸和批量获取
| 参数 | 类型 | 说明 |
|---|---|---|
category |
可选 | 分类名,留空或 "all" 随机分类 |
size |
可选 | 尺寸类型(如 pc、phone),留空或 "all" 随机尺寸 |
count |
可选 | 数量 1-20,默认 1 |
GET /api/random/video?category=movie&size=pc&count=2
响应示例:
{
"success": true,
"count": 2,
"videos": [
{
"url": "https://example.com/video/movie1.mp4",
"category": "movie",
"size": "pc"
},
{
"url": "https://example.com/video/movie2.mp4",
"category": "movie",
"size": "pc"
}
]
}
302 重定向到随机视频 URL,可直接嵌入 <video> 标签
| 参数 | 类型 | 说明 |
|---|---|---|
category |
可选 | 分类名 |
size |
可选 | 尺寸类型 |
<video src="/video?category=movie&size=phone" controls></video>
响应:
HTTP/1.1 302 Found
Location: https://example.com/video/movie123.mp4
获取所有已加载的视频分类列表
GET /api/categories/video
响应示例:
{
"categories": [
"movie",
"music",
"funny"
],
"count": 3
}
获取所有已加载的视频尺寸类型列表
GET /api/sizes/video
响应示例:
{
"sizes": [
"pc",
"phone"
],
"count": 2
}
获取图片库统计信息,包括分类数量和图片总数
GET /api/stats
响应示例:
{
"success": true,
"images": {
"categories": 3,
"sizes": 2,
"total": 250,
"details": {
"cat": {
"pc": 50,
"phone": 50
},
"wallpaper": {
"pc": 120
},
"anime": {
"pc": 30
}
}
},
"videos": {
"categories": 2,
"sizes": 1,
"total": 50,
"details": {
"movie": {
"pc": 30
},
"music": {
"pc": 20
}
}
}
}
服务健康检查端点,用于监控和负载均衡
GET /health
响应示例:
{
"status": "ok",
"timestamp": "2024-01-01T12:00:00Z"
}
重新加载 data/images 和 data/videos 目录下的数据,无需重启服务。支持 POST 和 GET 两种方式
| 认证方式 | 说明 |
|---|---|
X-Admin-Token 请求头 |
管理员认证 Token,默认为 your-secret-admin-token |
token URL 参数 |
也可通过 URL 参数传递 Token |
# 方式 1: POST 请求 + 请求头
curl -X POST -H "X-Admin-Token: your-secret-admin-token" /admin/reload
# 方式 2: GET 请求 + URL 参数
curl /admin/reload?token=your-secret-admin-token
响应示例:
{
"success": true,
"message": "图片和视频库已重新加载"
}