文件标签(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+KmsSecurityFilter):KmsMvcConfig注册全局 Servlet 过滤器KmsSecurityFilter(URL 模式/*,context-path 为/时为/kms/*)。本控制器路径/api/file-tags/**不在KmsSecurityFilter.isExcludeURI的豁免名单内(豁免仅覆盖/login.*、/admin、/domain.*、/tray/service、/authtime、service/OfficeServer、.*outsideshare/.*/preview、静态资源后缀、actuator/health等)。过滤器调用Security.getUserIdFromToken(request),取不到用户则返回 HTTP401。因此所有端点均需 accessToken,可通过以下任一方式传递(据Security.getUserIdFromToken):query 参数accessToken、query 参数access_token(移动端)、请求头accessToken、CookieaccessToken、请求头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 位十六进制) |
请求示例¶
响应¶
结构:统一 Resource。
data:FileTags 对象(文件标签实体),含自动标签等字段;若记录不存在则为 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
["报销", "审批", "合同"]
响应¶
结构:统一 Resource。
data:更新后的 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 校验和 |
请求示例¶
响应¶
结构:统一 Resource。
data:null。
成功示例: