正在加载...
3446 字
17 分钟
初春图床API文档
2026-03-03

初春图床 API 文档#

图床对外提供的 HTTP 接口,覆盖上传、图库管理、标签、存储桶、统计与系统设置。

基础说明#

  • 接口地址:以下接口路径均需拼接你的站点域名,例如 https://img.example.com,文中只列出路径部分(如 /api/images/random)。
  • 统一返回格式:所有接口均返回 JSON,结构固定为:
{
"code": 200,
"message": "ok",
"data": {}
}

code200 表示成功,4xx / 5xx 表示失败;data 为具体数据或 null

  • Token 认证:标注「需要 Token」的接口,请在请求头携带:
Authorization: Bearer <你的 API Token>

Token 获取方式:后台 → 系统设置 → API Token(支持自定义)。使用前需在后台开启「启用 API」。

接口目录#

分组接口
公共接口(无需 Token)#1 随机图 · #2 登录设置 · #3 SEO 设置
认证与用户#4 用户信息 · #5 修改账户信息
上传#6 上传配置 · #7 图片上传 · #8 批量上传 · #9 URL 上传
图片管理#10 图片列表 · #11 图片详情 · #12 删除图片 · #13 添加标签 · #14 删除标签 · #15 批量添加标签 · #16 批量删除标签 · #17 访问源 · #18 批量访问源
标签#19 获取标签 · #20 添加标签 · #21 更新标签 · #22 删除标签
存储桶#23 存储桶列表 · #24 全部存储桶 · #25 新增存储桶 · #26 更新存储桶 · #27 删除存储桶 · #28 启用停用 · #29 测试连接
统计#30 仪表板统计 · #31 图片统计
系统设置#32 获取设置 · #33 更新设置 · #34 随机图配置
其他#35 图片外链水印

一、公共接口(无需 Token)#

1. 获取随机图#

GET /api/images/random

认证:无需

参数

参数类型说明
tagtext标签分类
modeljson / image返回数据类型(json 或图片流)
limitint返回数量限制(默认 1)

返回示例

{
"code": 200,
"message": "ok",
"data": [
{
"image": "20250310-142106.webp",
"url": "http://localhost:8080/uploads/2026/01/20250310-142106.webp"
}
]
}

2. 获取登录设置#

GET /api/settings/login

认证:无需

返回示例

{
"code": 200,
"message": "ok",
"data": {
"verify_method": "cappow",
"pow_verify": false,
"turnstile_site_key": "",
"tourist": true,
"start_register": false,
"oidc_enabled": false,
"cas_enabled": false
}
}

3. 获取 SEO 设置#

GET /api/settings/seo

认证:无需

返回示例

{
"code": 200,
"message": "ok",
"data": {
"seo_title": "初春图床",
"seo_description": "初春图床,一个免费、稳定、高效的图床服务",
"seo_keywords": "初春网络,雾创岛,初春图床,图床,免费,稳定,高效",
"seo_icp": "",
"public_security": "",
"seo_icon": ""
}
}

二、认证与用户(需要 Token)#

4. 获取用户信息#

GET /api/user/status

认证:需要

参数

参数类型说明
Authorizationtext请求头 Bearer token

返回示例

{
"code": 200,
"message": "已登录",
"data": {
"logged_in": true,
"user_id": 1,
"username": "admin"
}
}

5. 修改账户信息#

POST /api/account/change

认证:需要

请求数据类型:application/json

请求体

{
"current_password": "旧密码",
"new_password": "新密码(可留空,仅修改用户名时留空)",
"new_username": "新用户名(可留空,仅修改密码时留空)"
}

返回示例

{
"code": 200,
"message": "修改成功,请重新登录",
"data": null
}

注意:修改成功后当前会话会失效,需重新登录。


三、上传(需要 Token)#

6. 获取上传配置#

GET /api/uploadConfig

认证:需要

参数

参数类型说明
Authorizationtext请求头 Bearer token

返回示例

{
"code": 200,
"message": "ok",
"data": {
"default_bucket": 1,
"buckets": [
{ "id": 1, "name": "默认存储", "type": "default" },
{ "id": 2, "name": "R2", "type": "r2" }
],
"tags": [
{ "id": 1, "name": "TG" }
]
}
}

7. 图片上传(单张)#

POST /api/upload

认证:需要

请求数据类型:multipart/form-data

参数

参数类型说明
Authorizationtext请求头 Bearer token
filefile图片文件
bucket_idint存储桶 ID(可选,默认使用系统默认存储)

8. 图片批量上传#

POST /api/upload/images

认证:需要

请求数据类型:multipart/form-data

参数

参数类型说明
Authorizationtext请求头 Bearer token
file[]file[]图片文件列表
bucket_idint存储桶 ID(可选)

返回示例(#7、#8 共用)

{
"code": 200,
"message": "上传成功",
"data": {
"count": 1,
"files": [
{
"success": true,
"message": "上传成功",
"url": "/uploads/2026/03/1899494c7aaf90d0839.webp",
"storage": "default",
"filename": "1899494c7aaf90d0839.webp",
"file_size": 170092,
"mime_type": "image/webp",
"width": 2640,
"height": 1488,
"created_at": "2026-03-03 17:02:01"
}
]
}
}

9. URL 远程上传图片#

POST /api/images/url

认证:需要

请求数据类型:application/json

请求体

{
"url": "https://example.com/image.jpg",
"tag_id": 1,
"bucket_id": 1
}

参数

参数类型说明
Authorizationtext请求头 Bearer token
urlstring图片 URL(必填)
tag_idint标签 ID(可选)
bucket_idint存储桶 ID(可选,默认 1)

返回示例

{
"code": 200,
"message": "URL 图片上传成功",
"data": null
}

四、图片管理(需要 Token)#

10. 获取图片列表#

GET /api/images

认证:需要

参数

参数类型说明
Authorizationtext请求头 Bearer token
pageint页码
limitint每页数量
sort_orderdesc / asc排序方式
order_bytext排序字段(如 created_at)
roleadmin / guest / user角色筛选
tagstext标签 ID,支持多个用逗号分隔(如 0,1,2
bucket_idint存储桶 ID
searchtext按文件名模糊搜索

返回示例

{
"code": 200,
"message": "ok",
"data": {
"images": [
{
"id": 32,
"url": "/uploads/2026/01/1889534a80182ddc297.webp",
"thumbnail": "",
"filename": "1889534a80182ddc297.webp",
"file_size": 117818,
"mimeType": "image/webp",
"width": 640,
"height": 640,
"storage": "default",
"bucket_id": 1,
"user_id": 2873846347613367382,
"md5": "ab34b8d2a98f7f9c6cab0ed633100790",
"uuid": "35b3fcf8-cbbe-46db-88c0-b369da0c7213",
"created_at": "2026-01-10T17:05:08.1640839+08:00",
"tags": [{ "id": 0, "name": "默认" }]
}
],
"limit": 20,
"page": 1,
"total": 1,
"total_pages": 1
}
}

11. 获取图片详情#

GET /api/images/:id

认证:需要

参数

参数类型说明
Authorizationtext请求头 Bearer token
idint图片 ID

返回示例

{
"code": 200,
"message": "获取图片详情成功",
"data": {
"id": 1,
"url": "/uploads/2025/12/18841fa146649ddc582.webp",
"thumbnail": "/uploads/2025/12/thumbnails/18841fa146649ddc582.webp",
"filename": "18841fa146649ddc582.webp",
"file_size": 119370,
"mimeType": "image/webp",
"width": 640,
"height": 640,
"storage": "default",
"bucket_id": 1,
"user_id": 1,
"md5": "fe5ba8b5ad6cc6b44ffc0471958ca417",
"uuid": "admin",
"created_at": "2025-12-24T18:22:11.3717763+08:00"
}
}

12. 删除图片#

DELETE /api/images/:id

认证:需要

参数

参数类型说明
Authorizationtext请求头 Bearer token
idint图片 ID

返回示例

{
"code": 200,
"message": "删除成功",
"data": null
}

13. 添加图片标签#

POST /api/images/tag

认证:需要

请求数据类型:application/json

请求体

{
"id": 1,
"tags": 1
}

参数

参数类型说明
Authorizationtext请求头 Bearer token
idint图片 ID
tagsint标签 ID

返回示例

{
"code": 200,
"message": "标签添加成功",
"data": null
}

14. 删除图片标签#

DELETE /api/images/tag

认证:需要

参数

参数类型说明
Authorizationtext请求头 Bearer token
idint图片 ID
tagsint标签 ID

返回示例

{
"code": 200,
"message": "标签删除成功",
"data": null
}

15. 批量添加图片标签#

POST /api/images/tags

认证:需要

请求数据类型:application/json

请求体

{
"image_ids": [1, 2, 3],
"tag_id": 1
}

参数

参数类型说明
Authorizationtext请求头 Bearer token
image_ids[]int图片 ID 列表
tag_idint标签 ID

返回示例

{
"code": 200,
"message": "批量添加标签成功",
"data": null
}

16. 批量删除图片标签#

DELETE /api/images/tags

认证:需要

参数

参数类型说明
Authorizationtext请求头 Bearer token
image_ids[]int图片 ID 列表
tag_idint标签 ID

返回示例

{
"code": 200,
"message": "批量删除标签成功",
"data": null
}

17. 更新图片访问源#

切换单张图片对外访问所用的成功存储副本(不改动原图元数据,也不删除其它副本)。

PUT /api/images/:id/access-source

认证:需要

请求数据类型:application/json

请求体

{
"bucket_id": 2
}

参数

参数类型说明
Authorizationtext请求头 Bearer token
idint图片 ID(路径参数)
bucket_idint目标存储桶 ID(该图片必须已在其中存在成功副本)

返回示例

{
"code": 200,
"message": "图片访问源已更新",
"data": { "image_ids": [1], "bucket_id": 2 }
}

18. 批量更新图片访问源#

PUT /api/images/access-source

认证:需要

请求数据类型:application/json

请求体

{
"image_ids": [1, 2, 3],
"bucket_id": 2
}

参数

参数类型说明
Authorizationtext请求头 Bearer token
image_ids[]int图片 ID 列表
bucket_idint目标存储桶 ID(所有图片均需已存在该源的成功副本)

返回示例

{
"code": 200,
"message": "批量访问源已更新",
"data": { "image_ids": [1, 2, 3], "bucket_id": 2 }
}

五、标签(需要 Token)#

19. 获取标签#

GET /api/tags

认证:需要

参数

参数类型说明
Authorizationtext请求头 Bearer token

返回示例

{
"code": 200,
"message": "ok",
"data": {
"list": [{ "id": 1, "name": "TG" }],
"total": 1
}
}

20. 添加标签#

POST /api/tags

认证:需要

请求数据类型:application/json

请求体

{
"name": "新标签"
}

返回示例

{
"code": 200,
"message": "ok",
"data": { "id": 2, "name": "新标签" }
}

21. 更新标签#

PUT /api/tags/:id

认证:需要

请求数据类型:application/json

请求体

{
"name": "修改后的标签名"
}

返回示例

{
"code": 200,
"message": "ok",
"data": { "id": 2, "name": "修改后的标签名" }
}

22. 删除标签#

DELETE /api/tags/:id

认证:需要

参数

参数类型说明
Authorizationtext请求头 Bearer token
idint标签 ID

返回示例

{
"code": 200,
"message": "ok",
"data": {}
}

六、存储桶(需要 Token)#

23. 获取存储桶列表#

返回所有存储桶的简要信息。

GET /api/buckets/list

认证:需要

参数

参数类型说明
Authorizationtext请求头 Bearer token

返回示例

{
"code": 200,
"message": "ok",
"data": [
{ "id": 1, "name": "默认存储", "type": "default" },
{ "id": 2, "name": "R2", "type": "r2" }
]
}

24. 获取全部存储桶#

返回存储桶详情(含容量、用量、配置等)。

GET /api/buckets

认证:需要

参数

参数类型说明
Authorizationtext请求头 Bearer token

返回示例

{
"code": 200,
"message": "ok",
"data": [
{
"id": 1,
"name": "默认存储",
"type": "default",
"capacity": 0,
"config": { "storagePath": "/uploads" },
"usage": 274794356736,
"usage_readable": "256.78 GB",
"total_readable": "1.00 TB",
"usage_percent": 24.98,
"usage_free": "771.22 GB"
}
]
}

25. 新增存储桶#

POST /api/buckets

认证:需要

请求数据类型:application/json

请求体

{
"name": "测试存储",
"type": "webdav",
"capacity": 100,
"webdav_url": "https://dav.example.com",
"webdav_user": "user@example.com",
"webdav_pass": "password"
}

参数

参数类型说明
Authorizationtext请求头 Bearer token
nametext存储桶名称(必填)
typetext存储类型:s3 / r2 / ftp / webdav / telegram(必填)
capacityint存储桶容量(单位 GB,0 表示不限制;Telegram 类型可忽略)

各存储类型的配置字段(与上述参数一起放入请求体):

S3

参数类型说明
s3_endpointtextS3 服务地址
s3_access_keytextS3 访问密钥
s3_secret_keytextS3 密钥
s3_buckettextS3 存储桶名称

R2

参数类型说明
r2_endpointtextR2 服务地址
r2_access_keytextR2 访问密钥
r2_secret_keytextR2 密钥
r2_buckettextR2 存储桶名称

FTP

参数类型说明
ftp_hosttextFTP 服务地址
ftp_usertextFTP 用户名
ftp_passtextFTP 密码
ftp_porttextFTP 端口

WebDAV

参数类型说明
webdav_urltextWebDAV 服务地址
webdav_usertextWebDAV 用户名
webdav_passtextWebDAV 密码

Telegram

参数类型说明
tg_bot_tokentextTelegram Bot Token
tg_receiverstextTelegram Chat ID

返回示例

{
"code": 200,
"message": "添加成功",
"data": {
"id": 3,
"name": "测试存储",
"type": "webdav",
"capacity": 119185342464,
"config": {
"webdav_url": "https://dav.example.com",
"webdav_user": "user@example.com",
"webdav_pass": "password"
},
"usage": 0
}
}

26. 更新存储桶#

POST /api/buckets/update/:id

认证:需要

请求数据类型:application/json

请求体与参数:同「新增存储桶」——nametype(必须与添加时一致)、capacity 及各存储类型的配置字段;id 为路径参数。

注意:默认存储桶(ID=1)不可编辑;Telegram 类型可忽略 capacity。

返回示例

{
"code": 200,
"message": "更新成功",
"data": null
}

27. 删除存储桶#

仅移除该存储源上的副本,其它存储源副本与主记录保留。

DELETE /api/buckets/:id

认证:需要

参数

参数类型说明
Authorizationtext请求头 Bearer token
idint存储桶 ID

返回示例

{
"code": 200,
"message": "删除成功",
"data": null
}

28. 启用/停用存储桶#

PUT /api/buckets/:id/enabled

认证:需要

请求数据类型:application/json

请求体

{
"enabled": false
}

参数

参数类型说明
Authorizationtext请求头 Bearer token
idint存储桶 ID
enabledbooltrue 启用 / false 停用

注意:本机默认存储桶(ID=1)用于访问回退,不能停用。

返回示例

{
"code": 200,
"message": "存储源已临时停用",
"data": { "id": 2, "enabled": false, "disabled": true }
}

29. 测试存储桶连接#

POST /api/buckets/test

认证:需要

请求数据类型:application/json

请求体:同「新增存储桶」的各存储类型配置字段(如 s3_endpointwebdav_url 等)。

返回示例

{
"code": 200,
"message": "连接测试成功",
"data": { "success": true }
}

七、统计(需要 Token)#

30. 仪表板统计#

GET /api/stats/dashboard

认证:需要

参数

参数类型说明
Authorizationtext请求头 Bearer token

返回示例(已省略部分列表项)

{
"code": 200,
"message": "获取统计数据成功",
"data": {
"total_images": 26,
"total_size": 920903,
"today_uploads": 0,
"month_uploads": 0,
"recent_images": [
{
"id": 34,
"url": "/uploads/2026/01/188f107f0b67c180175.webp",
"thumbnail": "",
"filename": "188f107f0b67c180175.webp",
"file_size": 117818,
"mimeType": "image/webp",
"width": 640,
"height": 640,
"storage": "default",
"bucket_id": 1,
"user_id": 1,
"md5": "d524973a0133f423b908f311d7bc089a",
"uuid": "admin",
"created_at": "2026-01-29T09:48:36.4202471+08:00"
}
],
"upload_trend": [{ "date": "2026-03-01", "count": 0 }],
"format_stats": [
{ "format": "image/jpeg", "count": 1, "size": 61868 },
{ "format": "image/webp", "count": 24, "size": 856774 }
],
"size_distribution": [
{ "range": "< 100KB", "count": 20 },
{ "range": "100KB - 500KB", "count": 6 }
]
}
}

31. 图片统计#

GET /api/stats/images

认证:需要

参数

参数类型说明
Authorizationtext请求头 Bearer token

返回示例

{
"code": 200,
"message": "获取图片统计成功",
"data": [
{ "date": "2025-12", "count": 2 },
{ "date": "2026-01", "count": 24 },
{ "date": "2026-02", "count": 0 }
]
}

八、系统设置(需要 Token)#

32. 获取系统设置#

POST /api/settings/get

该接口使用 auth.Any 注册,GET 同样可用。

认证:需要

请求数据类型:application/json

请求体

{
"keys": []
}

keys 为空时返回全部设置;也可以传入指定的键数组进行筛选。

返回示例

{
"code": 200,
"message": "ok",
"data": {
"id": 1,
"compress_image": false,
"save_webp": true,
"thumbnail": false,
"tourist": true,
"tg_notice": false,
"pow_verify": false,
"verify_method": "cappow",
"turnstile_site_key": "",
"cappow_difficulty": 4,
"start_api": false,
"api_token": "",
"save_original_name": false,
"default_storage": 1,
"watermark_enable": false,
"watermark_text": "初春图床",
"watermark_pos": "bottom-right",
"watermark_size": 10,
"watermark_color": "#000000",
"watermark_opac": 0.5,
"referer_white_enable": false,
"referer_white_list": "",
"seo_title": "初春图床",
"seo_description": "初春图床,一个免费、稳定、高效的图床服务",
"seo_keywords": "初春网络,雾创岛,初春图床,图床,免费,稳定,高效",
"seo_icp": "",
"public_security": "",
"seo_icon": ""
}
}

33. 更新系统设置#

POST /api/settings/update

认证:需要

请求数据类型:application/json

请求体

{
"key": "tourist",
"value": true
}

参数

参数类型说明
Authorizationtext请求头 Bearer token
keystring配置项名称(参考「获取系统设置」返回的键)
valuestring配置项值

返回示例

{
"code": 200,
"message": "更新成功",
"data": null
}

34. 随机图配置#

GET /api/settings/randomGraph
POST /api/settings/randomGraph

认证:需要

GET 返回当前随机图范围:

{
"code": 200,
"message": "ok",
"data": {
"user_ids": [1, 2],
"tag_ids": []
}
}

POST 设置随机图范围,请求体

{
"user_ids": [1, 2],
"tag_ids": [1]
}

返回示例

{
"code": 200,
"message": "ok",
"data": null
}

九、其他#

35. 图片外链水印参数#

在图片外链 URL 上附加查询参数,即可对该次访问动态添加水印。

GET /uploads/xxxx/xx/xxxxxxxxxxxxxx.xxx

认证:无需

参数

参数类型说明
watermarkbool是否开启水印
wm_textstring水印文字
wm_posstring水印位置:top-left / top-right / bottom-left / bottom-right / center
wm_sizefloat水印大小
wm_dynamicbool是否动态水印
wm_ratioint水印动态比例
wm_min_sizeint水印最小尺寸
wm_max_sizeint水印最大尺寸
wm_colorstring水印颜色(16 进制)
wm_opacityfloat水印透明度
wm_fontstring字体文件路径(建议不要加上,防止报错)

写在后面#

以上文档可能存在一些错误,如果发现请及时联系我进行修改,谢谢!

初春图床API文档
https://www.tr0.cn/oneimgapi/
作者
小森
发布于
2026-03-03
许可协议
CC BY-NC-SA 4.0