Skip to content

接口与路由

本页按当前路由结构整理主要 API。由于项目里同时存在图库(Gallery)和云盘(Cloud),接口被分成两大部分,便于按业务查找。

说明:除少量公共短链和静态访问入口外,当前管理接口统一挂载在 /api 前缀下。

鉴权方式

大部分管理接口都依赖管理员登录态,支持两种携带方式:

  • Cookie:z_drive_admin_token
  • Header:Authorization: Bearer <token>

登录后端会签发 JWT,未登录或过期时会返回 401。 如果配置了 ADMIN_TOKEN,也可以直接使用静态令牌;当 ADMIN_TOKEN 为空时,该通道会自动关闭。

健康检查

方法路径说明
GET/返回运行中消息。
GET/health健康检查接口。

图库接口

图库接口用于上传、查看、统计和管理图片资源。

方法路径说明
POST/api/gallery/upload上传单张图片或文件,表单字段包含 fileaccess_mode
POST/api/gallery/upload/multiple批量上传多个文件。
GET/api/gallery/list分页查询图库条目,支持 pagepage_sizefile_typequery
GET/api/gallery/stats查看图库统计信息。
DELETE/api/gallery/delete/{short_code}删除指定图片。
POST/api/gallery/login管理端登录并获取 token。
GET/api/gallery/logout退出登录并清除 Cookie。
GET/api/gallery/file/{file_key}获取原图文件。
GET/api/gallery/info/{file_key}获取图片元信息。
GET/api/gallery/download/{file_key}下载原图。
GET/i/{file_key}公开访问入口,可返回预览图或原图。

图库上传示例

bash
curl -X POST "http://127.0.0.1:8000/api/gallery/upload" \
	-F "file=@./demo.jpg" \
	-F "access_mode=none"

图库访问说明

  • access_mode=none:不启用单独密码。
  • access_mode=individual:会生成独立访问签名。
  • IMAGE_AUTH_MODE=sign 时,会使用全局签名控制访问。

云盘接口

云盘接口用于文件管理、目录操作、批量处理、分享和分片上传。

管理接口

方法路径说明
GET/api/cloud/items列出目录下文件,支持排序和筛选。
POST/api/cloud/folders新建文件夹。
POST/api/cloud/upload上传单个文件。
POST/api/cloud/upload/multiple批量上传文件。
POST/api/cloud/uploads/fast-check秒传检查。
POST/api/cloud/uploads/fast-save直接保存已存在文件。
PATCH/api/cloud/items/{item_id}重命名文件或目录。
POST/api/cloud/items/{item_id}/move移动文件或目录。
POST/api/cloud/items/{item_id}/copy复制文件或目录。
PATCH/api/cloud/items/{item_id}/visibility切换可见性。
DELETE/api/cloud/items/{item_id}删除条目。
POST/api/cloud/items/batch/delete批量删除。
POST/api/cloud/items/batch/move批量移动。
POST/api/cloud/items/batch/copy批量复制。
GET/api/cloud/download/{item_id}下载文件。
GET/api/cloud/preview/{item_id}预览文件。
GET/api/cloud/thumbnail/{item_id}获取缩略图。
POST/api/cloud/items/batch/download批量打包下载。
GET/api/cloud/summary云盘统计摘要。

分享接口

方法路径说明
POST/api/cloud/shares创建分享。
GET/api/cloud/shares列出分享。
DELETE/api/cloud/shares/{share_id}取消分享。
GET/api/cloud/shares/{share_id}/logs查看访问日志。
POST/api/cloud/public/{share_code}/access公开分享访问入口,返回预览和下载地址。
GET/api/cloud/public/{share_code}/preview分享预览。
GET/api/cloud/public/{share_code}/download分享下载。
GET/f/{share_code}短链入口,可能重定向到预览页。

分片上传接口

方法路径说明
POST/api/cloud/uploads/chunk/init初始化分片上传任务。
PUT/api/cloud/uploads/chunk/{upload_id}/{index}上传某个分片。
GET/api/cloud/uploads/chunk/{upload_id}查询分片上传状态。
GET/api/cloud/uploads/tasks列出所有上传任务。
POST/api/cloud/uploads/chunk/{upload_id}/pause暂停任务。
POST/api/cloud/uploads/chunk/{upload_id}/resume恢复任务。
POST/api/cloud/uploads/chunk/{upload_id}/complete合并分片并保存为正式文件。
POST/api/cloud/uploads/chunk/{upload_id}/cancel取消任务。

代码片接口

代码片接口用于编辑、查询、分享和下载代码片内容。

管理接口

方法路径说明
GET/api/snippets查询代码片列表,支持 querylanguagefolder_idtag
POST/api/snippets新建代码片。
PUT/api/snippets/{snippet_id}更新代码片。
DELETE/api/snippets/{snippet_id}删除代码片。
GET/api/snippets/{snippet_id}获取代码片详情。
GET/api/snippets/{snippet_id}/download下载代码片正文。
GET/api/snippets/folders列出代码片分组。
POST/api/snippets/folders新建代码片分组。
GET/api/snippets/tags列出代码片标签。
POST/api/snippets/tags新建代码片标签。
GET/api/snippets/shares/list列出有效代码片分享。
POST/api/snippets/{snippet_id}/shares创建代码片分享。
DELETE/api/snippets/shares/{share_id}取消代码片分享。

公共分享接口

方法路径说明
POST/api/snippets/public/{share_code}/access公共访问代码片分享,支持密码校验。
GET/api/snippets/public/{share_code}/download公共下载代码片正文。
GET/p/{share_code}代码片短链入口。

请求示例

云盘新建文件夹

bash
curl -X POST "http://127.0.0.1:8000/api/cloud/folders" \
	-H "Authorization: Bearer <token>" \
	-H "Content-Type: application/json" \
	-d '{"parent_id":null,"name":"Demo"}'

创建分享

bash
curl -X POST "http://127.0.0.1:8000/api/cloud/shares" \
	-H "Authorization: Bearer <token>" \
	-H "Content-Type: application/json" \
	-d '{"item_id":1,"password":"","expires_minutes":10080}'

OpenAPI / Swagger

FastAPI 在 DEBUG=true 时默认提供接口文档:

  • GET /openapi.json
  • GET /docs

如果你想核对字段定义,建议在本地调试环境直接打开 http://127.0.0.1:8000/docs。生产环境把 DEBUG 设为 false 后,这两个入口会关闭。