新网盘(NewDiskController)¶
提供 KMS 知识管理模块「新网盘域」(Disk.TYPE_NEW_DISK)的能力:创建新网盘、更新新网盘、获取新网盘集合、批量删除新网盘。所有端点均返回 JSON 资源。
- 接口类型:REST 资源(
@RestController,类级与所有方法级produces = MediaType.APPLICATION_JSON_VALUE) - 基址:
${myapps.context-path.kms:}/api/kms(类级@RequestMapping仅声明单一前缀,无/kms备用前缀;与 FolderController、TeamController、DiskController 一致) - Tag:kms新网盘模块
公共说明¶
- 鉴权(据源码
KmsMvcConfig+KmsSecurityFilter):KmsMvcConfig注册全局 Servlet 过滤器KmsSecurityFilter(URL 模式/*,context-path 为/时为/kms/*)。本控制器路径/api/kms/new/disk不在KmsSecurityFilter.isExcludeURI的豁免名单内,亦不匹配 S3 数据面前缀(/s3、/kms/s3)。过滤器调用Security.getUserIdFromToken(request),取不到用户则返回 HTTP401。因此所有端点均需 accessToken,可通过以下任一方式传递(据Security.getUserIdFromToken):query 参数accessToken、query 参数access_token(移动端)、请求头accessToken、CookieaccessToken、请求头Authorization: Bearer <token>。完整鉴权机制见 index.md「鉴权说明」。 - 执行用户:控制器内
getUser()(继承自AbstractBaseController)调用Security.getUserIdFromToken(request)还原当前用户 id,再经 Feign(UserAPI.getUserById)装载KmsUser。无userCode参数。 - 响应结构:统一
Resource(见 ../index.md「统一响应结构」),字段为errcode/errmsg/data/errors。KMS 的Resource为AbstractBaseController内部类,其构造器对data执行ESAPI.encode(data)做 XSS 编码,故data中的 HTML 特殊字符会被转义。 - HTTP 状态码与错误码(据源码
AbstractBaseController全局异常处理):成功默认 HTTP 200;InvalidRequestException→ HTTP 400 / errcode=400(如同域名下重名);其他Exception→ HTTP 500 / errcode=500。
1. 创建新网盘¶
在当前用户企业域下创建一个新网盘(type=TYPE_NEW_DISK)。若域内已有同名新网盘(按 name.trim() 比较),抛 InvalidRequestException(HTTP 400)。新网盘的 id 与 ownerId 均设为同一随机 UUID,domainId 取自当前用户。
- 接口类型:REST 资源
- 请求方式:
POST - 请求路径:
/new/disk(完整:{kms-context}/api/kms/new/disk) - 鉴权:是(需 accessToken,据源码)
- Tag:kms新网盘模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| body | body | object | 是 | Disk 对象 JSON,至少含 name |
请求体¶
请求示例¶
POST /api/kms/new/disk?accessToken=__TOKEN__ HTTP/1.1
Content-Type: application/json
{ "name": "项目资料盘" }
响应¶
结构:统一 Resource(见 ../index.md「统一响应结构」)。
data:新建的 Disk 实体(含服务端生成的 id/ownerId/type/domainId)。
失败示例(重名):
2. 更新新网盘¶
更新指定新网盘的 name 与 orderNo。若域内已存在同名新网盘且 Id 不同,抛 InvalidRequestException(HTTP 400)。
- 接口类型:REST 资源
- 请求方式:
PUT - 请求路径:
/new/disk(完整:{kms-context}/api/kms/new/disk) - 鉴权:是(需 accessToken,据源码)
- Tag:kms新网盘模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| body | body | object | 是 | Disk 对象 JSON,含 id、name、orderNo |
请求体¶
请求示例¶
PUT /api/kms/new/disk?accessToken=__TOKEN__ HTTP/1.1
Content-Type: application/json
{ "id": "__DISKID__", "name": "新名称", "orderNo": 2 }
响应¶
结构:统一 Resource。
data:更新后的 Disk 实体(仅 name/orderNo 被覆盖,其余字段保留旧值)。
失败示例(重名):
3. 获取新网盘集合¶
返回当前用户企业域下的全部新网盘列表(type=TYPE_NEW_DISK)。
- 接口类型:REST 资源
- 请求方式:
GET - 请求路径:
/new/disk(完整:{kms-context}/api/kms/new/disk) - 鉴权:是(需 accessToken,据源码)
- Tag:kms新网盘模块
请求参数¶
无。
请求示例¶
响应¶
结构:统一 Resource。
data:List<Disk>,新网盘列表。
4. 删除新网盘集合¶
按网盘 Id 数组批量删除新网盘。diskId 为空数组或 null 时抛 InvalidRequestException(HTTP 400)。
- 接口类型:REST 资源
- 请求方式:
DELETE - 请求路径:
/new/disk(完整:{kms-context}/api/kms/new/disk) - 鉴权:是(需 accessToken,据源码)
- Tag:kms新网盘模块
请求参数¶
| 参数名 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
| body | body | array(string) | 是 | 待删除网盘Id数组 |
请求体¶
请求示例¶
DELETE /api/kms/new/disk?accessToken=__TOKEN__ HTTP/1.1
Content-Type: application/json
["__DISKID1__", "__DISKID2__"]
响应¶
结构:统一 Resource。
data:boolean,固定为 true。
失败示例(参数为空):