@@ -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 读取文件(GET、 PROPFIND 等)
48- - ** 131072 (WEBDAV_MANAGE)** : WebDAV 管理权限 - 允许通过 WebDAV 管理文件(PUT、 DELETE、 MKCOL 等)
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