Skip to content

Commit eba024c

Browse files
authored
Merge branch 'ling-drag0n:main' into main
2 parents 675de81 + 07d9131 commit eba024c

File tree

221 files changed

+12681
-7309
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

221 files changed

+12681
-7309
lines changed

Api-doc.md

Lines changed: 104 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,22 +37,24 @@ API 密钥由管理员在后台创建,使用位标志权限系统,支持以
3737

3838
**权限位标志值:**
3939

40-
- **1 (TEXT)**: 文本分享权限 - 允许创建、查看、修改和删除文本分享
41-
- **2 (FILE_SHARE)**: 文件分享权限 - 允许创建和管理文件分享链接
42-
- **256 (MOUNT_VIEW)**: 挂载页查看权限 - 允许浏览挂载页内容
40+
- **1 (TEXT_SHARE)**: 文本分享权限 - 允许创建/分享文本
41+
- **2 (FILE_SHARE)**: 文件分享权限 - 允许创建/分享文件
42+
- **4 (TEXT_MANAGE)**: 文本管理权限 - 允许列出/修改/删除自己的文本分享
43+
- **8 (FILE_MANAGE)**: 文件管理权限 - 允许列出/修改/删除自己的文件分享
44+
- **256 (MOUNT_VIEW)**: 挂载页查看权限 - 允许浏览挂载页
4345
- **512 (MOUNT_UPLOAD)**: 上传权限 - 允许上传文件和创建目录
44-
- **1024 (MOUNT_COPY)**: 复制权限 - 允许复制文件和目录
45-
- **2048 (MOUNT_RENAME)**: 重命名权限 - 允许重命名文件和目录
46-
- **4096 (MOUNT_DELETE)**: 删除权限 - 允许删除文件和目录
47-
- **65536 (WEBDAV_READ)**: WebDAV 读取权限 - 允许通过 WebDAV 读取文件(GETPROPFIND 等)
48-
- **131072 (WEBDAV_MANAGE)**: WebDAV 管理权限 - 允许通过 WebDAV 管理文件(PUTDELETEMKCOL 等)
46+
- **1024 (MOUNT_COPY)**: 复制权限 - 允许复制文件/目录
47+
- **2048 (MOUNT_RENAME)**: 重命名权限 - 允许重命名文件/目录
48+
- **4096 (MOUNT_DELETE)**: 删除权限 - 允许删除文件/目录
49+
- **65536 (WEBDAV_READ)**: WebDAV 读取权限 - 允许通过 WebDAV 读取文件(GET/PROPFIND 等)
50+
- **131072 (WEBDAV_MANAGE)**: WebDAV 管理权限 - 允许通过 WebDAV 管理文件(PUT/DELETE/MKCOL 等)
4951

5052
**权限组合示例:**
5153

52-
- `259` = TEXT + FILE_SHARE + MOUNT_VIEW (1+2+256) - 基础查看权限
54+
- `15` = TEXT_SHARE + TEXT_MANAGE + FILE_SHARE + FILE_MANAGE (1+2+4+8) - 拥有完整的文本/文件分享与管理权限
5355
- `771` = 基础权限 + MOUNT_UPLOAD (1+2+256+512) - 包含上传权限
5456
- `7939` = 除 WebDAV 外的所有权限 (1+2+256+512+1024+2048+4096) - 挂载页完整权限
55-
- `198915` = 所有权限 (1+2+256+512+1024+2048+4096+65536+131072) - 完整权限
57+
- `204559` = ALL_PERMISSIONS (1+2+4+8+256+512+1024+2048+4096+65536+131072) - 拥有所有权限
5658

5759
**路径限制:**
5860

@@ -675,6 +677,49 @@ X-Custom-Auth-Key: <api_key>
675677
- 授权:需要有效的 API 密钥
676678
- 响应:API 密钥验证状态和权限信息(详见下方完整示例)
677679

680+
681+
- `GET /api/public/guest-config`
682+
683+
- 描述:用于前端获取Guest API 密钥配置,支持"游客模式"登录
684+
- 权限要求:无需身份验证
685+
- 响应会返回以下字段:
686+
- `enabled`: 是否有效(已启用 + 未禁用 + 未过期)
687+
- `key`: 仅在有效时才返回 API 密钥的值,无效时为 null
688+
- `name`: Guest 密钥名称(默认 GUEST)
689+
- `permissions`: 位标志权限值
690+
- `permissions_detail`: ▲text/file/mount/webdav 权限详细信息
691+
- `basic_path`: 密钥用户的基础路径
692+
- `expires_at`: 过期时间(ISO 8601 字符串)
693+
- 响应示例:
694+
```json
695+
{
696+
"code": 200,
697+
"message": "游客配置获取成功",
698+
"success": true,
699+
"data": {
700+
"enabled": true,
701+
"key": "guest",
702+
"name": "guest",
703+
"permissions": 768,
704+
"permissions_detail": {
705+
"text_share": true,
706+
"text_manage": false,
707+
"file_share": true,
708+
"file_manage": false,
709+
"mount_view": true,
710+
"mount_upload": false,
711+
"mount_copy": false,
712+
"mount_rename": false,
713+
"mount_delete": false,
714+
"webdav_read": false,
715+
"webdav_manage": false
716+
},
717+
"basic_path": "/public",
718+
"expires_at": "9999-12-31T23:59:59Z"
719+
}
720+
}
721+
```
722+
678723
- `GET /api/admin/dashboard/stats`
679724
- 描述:获取管理员仪表盘统计数据
680725
- 授权:需要管理员令牌
@@ -809,6 +854,55 @@ X-Custom-Auth-Key: <api_key>
809854
"success": true
810855
}
811856
```
857+
- `GET /api/admin/api-keys/:id/storage-acl`
858+
859+
- 用于获取指定 API 密钥的存储 ACL 白名单
860+
- 权限:需要管理员权限
861+
- 参数:id - 密钥 ID
862+
- 响应:返回该密钥允许使用的 `storage_config_id` 列表
863+
```json
864+
{
865+
"code": 200,
866+
"message": "获取存储 ACL 成功",
867+
"data": {
868+
"subject_type": "API_KEY",
869+
"subject_id": "密钥ID",
870+
"storage_config_ids": ["config-id-a", "config-id-b"]
871+
},
872+
"success": true
873+
}
874+
```
875+
- 说明:
876+
- 当 `storage_config_ids` 为空数组时,表示未为该密钥配置存储 ACL 白名单,此时该密钥可以使用所有公开存储配置(仍受 `basic_path` 和权限位限制)。
877+
878+
- `PUT /api/admin/api-keys/:id/storage-acl`
879+
880+
- 用于整体更新指定 API 密钥的存储 ACL 白名单
881+
- 权限:需要管理员权限
882+
- 参数:id - 密钥 ID
883+
- 请求体:
884+
```json
885+
{
886+
"storage_config_ids": ["config-id-a", "config-id-b"]
887+
}
888+
```
889+
- 响应:
890+
```json
891+
{
892+
"code": 200,
893+
"message": "存储 ACL 已更新",
894+
"data": {
895+
"subject_type": "API_KEY",
896+
"subject_id": "密钥ID",
897+
"storage_config_ids": ["config-id-a", "config-id-b"]
898+
},
899+
"success": true
900+
}
901+
```
902+
- 说明:
903+
- `storage_config_ids` 为非空数组:该密钥只能使用这些存储配置(并且必须是公开的 `is_public = 1`)。
904+
- `storage_config_ids` 为空数组:清空白名单,恢复为“可以使用所有公开存储配置”的默认模式。
905+
812906

813907
### 系统设置 API
814908

0 commit comments

Comments
 (0)