跳转至

新网盘(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 + KmsSecurityFilterKmsMvcConfig 注册全局 Servlet 过滤器 KmsSecurityFilter(URL 模式 /*,context-path 为 / 时为 /kms/*)。本控制器路径 /api/kms/new/disk 不在 KmsSecurityFilter.isExcludeURI 的豁免名单内,亦不匹配 S3 数据面前缀(/s3/kms/s3)。过滤器调用 Security.getUserIdFromToken(request),取不到用户则返回 HTTP 401因此所有端点均需 accessToken,可通过以下任一方式传递(据 Security.getUserIdFromToken):query 参数 accessToken、query 参数 access_token(移动端)、请求头 accessToken、Cookie accessToken、请求头 Authorization: Bearer <token>。完整鉴权机制见 index.md「鉴权说明」。
  • 执行用户:控制器内 getUser()(继承自 AbstractBaseController)调用 Security.getUserIdFromToken(request) 还原当前用户 id,再经 Feign(UserAPI.getUserById)装载 KmsUseruserCode 参数
  • 响应结构:统一 Resource(见 ../index.md「统一响应结构」),字段为 errcode/errmsg/data/errors。KMS 的 ResourceAbstractBaseController 内部类,其构造器对 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)。新网盘的 idownerId 均设为同一随机 UUID,domainId 取自当前用户。

  • 接口类型:REST 资源
  • 请求方式POST
  • 请求路径/new/disk(完整:{kms-context}/api/kms/new/disk
  • 鉴权:是(需 accessToken,据源码)
  • Tag:kms新网盘模块

请求参数

参数名 位置 类型 必填 说明
body body object Disk 对象 JSON,至少含 name

请求体

{ "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)。

失败示例(重名)

{ "errcode": 400, "errmsg": "网盘名称重复,请修改", "data": null, "errors": null }


2. 更新新网盘

更新指定新网盘的 nameorderNo。若域内已存在同名新网盘且 Id 不同,抛 InvalidRequestException(HTTP 400)。

  • 接口类型:REST 资源
  • 请求方式PUT
  • 请求路径/new/disk(完整:{kms-context}/api/kms/new/disk
  • 鉴权:是(需 accessToken,据源码)
  • Tag:kms新网盘模块

请求参数

参数名 位置 类型 必填 说明
body body object Disk 对象 JSON,含 idnameorderNo

请求体

{ "id": "__DISKID__", "name": "新名称", "orderNo": 2 }

请求示例

PUT /api/kms/new/disk?accessToken=__TOKEN__ HTTP/1.1
Content-Type: application/json

{ "id": "__DISKID__", "name": "新名称", "orderNo": 2 }

响应

结构:统一 Resourcedata:更新后的 Disk 实体(仅 name/orderNo 被覆盖,其余字段保留旧值)。

失败示例(重名)

{ "errcode": 400, "errmsg": "网盘名称重复,请修改", "data": null, "errors": null }


3. 获取新网盘集合

返回当前用户企业域下的全部新网盘列表(type=TYPE_NEW_DISK)。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/new/disk(完整:{kms-context}/api/kms/new/disk
  • 鉴权:是(需 accessToken,据源码)
  • Tag:kms新网盘模块

请求参数

无。

请求示例

GET /api/kms/new/disk?accessToken=__TOKEN__ HTTP/1.1

响应

结构:统一 ResourcedataList<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数组

请求体

["__DISKID1__", "__DISKID2__"]

请求示例

DELETE /api/kms/new/disk?accessToken=__TOKEN__ HTTP/1.1
Content-Type: application/json

["__DISKID1__", "__DISKID2__"]

响应

结构:统一 Resourcedataboolean,固定为 true

失败示例(参数为空)

{ "errcode": 400, "errmsg": "请求参数有误", "data": null, "errors": null }