跳转至

文件标签(FileTagsController)

提供 KMS 知识管理模块「文件标签域」的能力:按文件校验和(MD5 checksum)查询 / 更新 / 删除文件的「自动标签」(区别于 FileController 中针对 fileId 的用户标签管理)。本控制器共 3 个端点,所有端点均返回 JSON 资源。

  • 接口类型:REST 资源(@RestController,所有方法级 produces = MediaType.APPLICATION_JSON_VALUE
  • 基址${myapps.context-path.kms:}/api/file-tags(类级 @RequestMapping 仅声明单一前缀)
  • Tag:kms文件标签模块

公共说明

  • 鉴权(据源码 KmsMvcConfig + KmsSecurityFilterKmsMvcConfig 注册全局 Servlet 过滤器 KmsSecurityFilter(URL 模式 /*,context-path 为 / 时为 /kms/*)。本控制器路径 /api/file-tags/** 不在 KmsSecurityFilter.isExcludeURI 的豁免名单内(豁免仅覆盖 /login.*/admin/domain.*/tray/service/authtimeservice/OfficeServer.*outsideshare/.*/preview、静态资源后缀、actuator/health 等)。过滤器调用 Security.getUserIdFromToken(request),取不到用户则返回 HTTP 401因此所有端点均需 accessToken,可通过以下任一方式传递(据 Security.getUserIdFromToken):query 参数 accessToken、query 参数 access_token(移动端)、请求头 accessToken、Cookie accessToken、请求头 Authorization: Bearer <token>。完整鉴权机制见 index.md「鉴权说明」。
  • 执行用户:本控制器不调用 getUser(),仅按 fileChecksum 操作标签记录。
  • 响应结构:统一 Resource(见 ../index.md「统一响应结构」),字段为 errcode/errmsg/data/errors
  • 路径变量fileChecksum 为文件内容的 MD5 校验和(32 位十六进制字符串,与 FileController 的「通过文件校验码查询文件」/files/{fileChecksum} 同语义),非文件Id

1. 根据文件校验和获取文件标签

按文件 MD5 校验和查询对应的文件标签记录(含自动标签等字段)。

  • 接口类型:REST 资源
  • 请求方式GET
  • 请求路径/{fileChecksum}(完整:{kms-context}/api/file-tags/{fileChecksum}
  • 鉴权:是(需 accessToken,据源码)
  • Tag:kms文件标签模块

请求参数

参数名 位置 类型 必填 说明
fileChecksum path string 文件 MD5 校验和(32 位十六进制)

请求示例

GET /api/file-tags/__CHECKSUM__?accessToken=__TOKEN__ HTTP/1.1

响应

结构:统一 ResourcedataFileTags 对象(文件标签实体),含自动标签等字段;若记录不存在则为 null

成功示例

{
  "errcode": 0,
  "errmsg": "获取文件标签成功",
  "data": { "fileChecksum": "__CHECKSUM__", "autoTags": "[\"报销\",\"审批\"]" },
  "errors": null
}


2. 更新文件的自动标签

按文件 MD5 校验和更新该文件的自动标签(覆盖式更新)。

  • 接口类型:REST 资源
  • 请求方式PUT
  • 请求路径/{fileChecksum}/auto-tags(完整:{kms-context}/api/file-tags/{fileChecksum}/auto-tags
  • 鉴权:是(需 accessToken,据源码)
  • Tag:kms文件标签模块

请求参数

参数名 位置 类型 必填 说明
fileChecksum path string 文件 MD5 校验和
autoTags body string(JSON) 自动标签(JSON 格式字符串,由调用方组织)

请求体

请求体为原始字符串(@RequestBody String),通常传入 JSON 数组字符串:

["报销", "审批", "合同"]

请求示例

PUT /api/file-tags/__CHECKSUM__/auto-tags?accessToken=__TOKEN__ HTTP/1.1
Content-Type: application/json

["报销", "审批", "合同"]

响应

结构:统一 Resourcedata:更新后的 FileTags 对象。

成功示例

{
  "errcode": 0,
  "errmsg": "更新自动标签成功",
  "data": { "fileChecksum": "__CHECKSUM__", "autoTags": "[\"报销\",\"审批\",\"合同\"]" },
  "errors": null
}


3. 删除文件标签

按文件 MD5 校验和删除该文件的全部标签记录。

  • 接口类型:REST 资源
  • 请求方式DELETE
  • 请求路径/{fileChecksum}(完整:{kms-context}/api/file-tags/{fileChecksum}
  • 鉴权:是(需 accessToken,据源码)
  • Tag:kms文件标签模块

请求参数

参数名 位置 类型 必填 说明
fileChecksum path string 文件 MD5 校验和

请求示例

DELETE /api/file-tags/__CHECKSUM__?accessToken=__TOKEN__ HTTP/1.1

响应

结构:统一 Resourcedatanull

成功示例

{
  "errcode": 0,
  "errmsg": "删除文件标签成功",
  "data": null,
  "errors": null
}