API 参考
所有接口均为 application/json REST 风格。Base URL 即你的部署地址。
以下为开发中 API 的变化方向(仅示意):授权码、无限制与多存储相关字段将在实现后正式生效。
POST /api/upload — 客户端直传令牌
基于所选存储(Blob / B2 / GitHub)获取上传凭证。Blob 前端调用 upload(pathname, file, { access:"public", handleUploadUrl: "/api/upload" })。
{ "allowOverwrite": false, "maximumSizeInBytes": 1048576000 | null }
(开发中:无限制时 maximumSizeInBytes 为 null,需携带授权码。)
POST /api/share — 创建取件码
请求体:
{
"files": [{ "name": "a.txt", "size": 1024, "type": "text/plain", "pathname": "file/uuid-a.txt", "store": "b2" | "blob" | "github" }],
"expireDays": 7, // 可选,默认取站点设置
"maxDownloads": 100, // 可选;null = 无限制(需授权码)
"limitSize": false, // 可选;true = 文件大小无限制(需授权码)
"authCode": "0973" // 使用无限制时的授权码(一次性)
}
成功返回 200:
{ "code": "731387" }
无限制但授权码缺失/无效/已用/过期 → 403。
POST /api/take — 凭码取件
{ "code": "731387" }
成功返回文件清单与剩余下载次数:
{
"manifest": { "code": "731387", "files": [ { "name": "a.txt", "size": 1024, "type": "text/plain", "path": "..." } ], ... },
"remaining": null // 无限制时为 null
}
400格式错误404取件码不存在/已删除410已过期或下载次数用尽(自动删除后返回)
GET /api/download — 下载文件
查询参数:code(取件码)、path(文件 path,URL 编码)。存储于 GitHub 的文件自动选择最低延迟国内镜像回源。
返回 Content-Disposition: attachment 流式下载;每次下载计数,次数用完自动删除该分享。
管理接口(需 Cookie 会话)
| 方法 | 路径 | 说明 |
|---|---|---|
| POST | /api/admin/login | 登录,{ "password" },成功写 Cookie |
| GET | /api/admin/shares | 分享列表 |
| DELETE | /api/admin/shares | 删除分享,body { "code" } |
| POST | /api/admin/shares | body { "action":"cleanup" } 执行孤儿文件清理 |
| GET | /api/admin/settings | 读取站点设置(含无限制开关) |
| PUT | /api/admin/settings | 保存站点设置 |
| GET | /api/admin/authcodes | 查看授权码发放记录(开发中) |
| POST | /api/admin/authcodes | 生成新授权码(开发中) |
| DELETE | /api/admin/authcodes | 吊销某个授权码(开发中) |
| GET/POST/DELETE | /api/admin/stores | 存储实例列表 / 新增(Blob·B2·GitHub)/ 删除,含配额(开发中) |
管理接口需携带
fbc_session Cookie,未授权返回 401。