前期准备
开始操作前,确保您已经完成了 SDK 初始化。如果您还没有初始化 SDK,请先参考快速入门文档完成。
注意:
历史版本功能需要先通过设置历史版本配置信息接口开启。
历史版本配置设置生效可能有 1 分钟左右延迟。
清空历史版本接口会清空整个 library 全部文件的历史版本,相应的空间会释放,不可找回数据,请谨慎操作!
清空历史版本接口有频控限制,每分钟最多调用 1 次,请勿频繁调用。
历史版本合并时间可以减少冗余的历史版本,在指定时间内的覆盖操作只会生成 1 个历史版本。
查看历史版本列表
listHistory 实现查看历史版本列表,用于查询指定文件的所有历史版本信息。支持分页查询和排序。// 使用分页参数查询const res1 = await smh.history.listHistory({spaceId: 'your-space-id',filePath: 'documents/report.docx',page: 1,pageSize: 10,orderBy: 'creationTime',orderByType: 'desc'});// 使用 marker 分页查询const res2 = await smh.history.listHistory({spaceId: 'your-space-id',filePath: 'images/photo.jpg',marker: 'next-marker-value',limit: 20});
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
spaceId | 空间 ID | String | 是 |
filePath | 文件路径,对于多级目录,使用斜杠(/)分隔,例如 foo/bar.txt | String | 是 |
marker | 用于顺序列出分页的标识 | String | 否 |
limit | 用于顺序列出分页时本地列出的项目数限制,默认为 20 | Number | 否 |
page | 分页码,默认第一页 | Number | 否 |
pageSize | 分页大小,默认 20 | Number | 否 |
orderBy | 排序字段,按文件 id 排序为 id,按创建时间排序为 creationTime,默认为 id | String | 否 |
orderByType | 排序方式,升序为 asc,降序为 desc,默认为 desc | String | 否 |
userId | 用户身份识别 | String | 否 |
返回值说明:
HTTP 状态码:200,获取成功,返回历史版本列表。
{"totalNum": 2,"contents": [{"createdBy": "123","creationWay": 1,"version": 2,"isLatestVersion": true,"name": "test","size": 2345,"crc64": "4937027024332829001","contentType": "image/png","creationTime": "2021-08-12T08:13:55.000Z","setLatestTime": "2021-08-12T08:13:55.000Z"},{"id": 1,"createdBy": "456","creationWay": 1,"version": 2,"isLatestVersion": false,"name": "test","size": 2300,"crc64": "8237027023432829000","contentType": "image/png","creationTime": "2021-08-12T08:13:54.000Z","setLatestTime": "2021-08-12T08:13:54.000Z"}]}
响应字段说明
字段 | 说明 | 类型 |
totalNum | 历史版本总数,采用 page 模式才会返回该字段 | Number |
hasMore | 是否有更多搜索结果 | Boolean |
nextMarker | 用于获取后续页的分页标识,仅当 hasMore 为 true 时才返回该字段 | String |
contents | 历史版本列表 | Array |
contents 数组元素字段说明
字段 | 说明 | 类型 |
id | 历史版本 ID,最新历史版本不返回这一字段 | Number |
createdBy | 创建人 ID | String |
creationWay | 创建方式,0:创建,1:更新 | Number |
version | 版本号 | Number |
isLatestVersion | 是否最新版本 | Boolean |
name | 目录或相簿名或文件名 | String |
size | 历史版本文件大小 | Number |
crc64 | 文件的 CRC64-ECMA182 校验值,字符串格式 | String |
contentType | 文件元类型 | String |
creationTime | ISO 8601 格式的日期与时间字符串,表示文件的创建时间 | String |
setLatestTime | 设置为最新版本的时间 | String |
查询历史版本配置信息
getHistoryConfig 实现查询历史版本配置信息,用于获取当前媒体库的历史版本配置。权限要求:admin 权限。const res = await smh.history.getHistoryConfig({});if (res.status === 200) {console.log('历史版本配置获取成功', res.data);}
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
userId | 用户身份识别 | String | 否 |
返回值说明
HTTP 状态码:200,获取成功,返回历史版本配置信息。
{"enableFileHistory": false,"fileHistoryCount": 20,"fileHistoryExpireDay": 30,"mergeInterval": 10}
响应字段说明
字段 | 说明 | 类型 |
enableFileHistory | 是否打开历史版本 | Boolean |
fileHistoryCount | 历史版本最大数量,范围:1-999 个 | Number |
fileHistoryExpireDay | 历史版本过期时间,范围:0-999 天,0 表示永不过期 | Number |
mergeInterval | 历史版本合并时间,即在 mergeInterval 秒内的覆盖操作,只会生成 1 个历史版本 | Number |
设置历史版本配置信息
setHistoryConfig 实现设置历史版本配置信息,用于配置媒体库的历史版本功能。权限要求:admin 权限。const res = await smh.history.setHistoryConfig({setHistoryConfigRequest: {enableFileHistory: true,fileHistoryCount: 10,fileHistoryExpireDay: 30,mergeInterval: 60}});if (res.status === 204) {console.log('历史版本配置设置成功');}
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
setHistoryConfigRequest | 设置历史版本配置请求对象 | Object | 是 |
userId | 用户身份识别 | String | 否 |
setHistoryConfigRequest 对象说明
字段 | 参数描述 | 类型 | 是否必填 |
enableFileHistory | 是否打开历史版本,默认为 false | Boolean | 否 |
fileHistoryCount | 历史版本最大数量,范围:1-999 个;第一次设置必填 | Number | 否 |
fileHistoryExpireDay | 历史版本过期时间,范围:0-999 天,0 表示永不过期;第一次设置必填 | Number | 否 |
mergeInterval | 历史版本合并时间,范围:0 或 5-600,默认为 0 秒(不合并) | Number | 否 |
返回值说明:
HTTP 状态码:204,设置成功,无响应体。
设置历史版本为最新版本
setHistoryLatest 实现设置历史版本为最新版本。权限要求:admin、space_admin 或 set_history_latest 权限。const res = await smh.history.setHistoryLatest({spaceId: 'your-space-id',historyId: '1'});if (res.status === 200) {console.log('历史版本已设置为最新版本', res.data);}
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
spaceId | 空间 ID | String | 是 |
historyId | 历史版本 ID | String | 是 |
userId | 用户身份识别 | String | 否 |
返回值说明
HTTP 状态码:200,设置成功,返回最新版本文件信息。
响应字段说明
字段 | 说明 | 类型 |
name | 文件名 | String |
type | 文件类型 | String |
creationTime | 创建时间 | String |
modificationTime | 修改时间 | String |
setLatestTime | 设置为最新版本的时间 | String |
contentType | 媒体类型 | String |
size | 最新版本的文件大小 | Number |
eTag | 文件 ETag | String |
crc64 | 文件的 CRC64-ECMA182 校验值 | String |
previewByDoc | 是否可通过 wps 预览 | Boolean |
previewByCI | 是否可通过万象预览 | Boolean |
previewAsIcon | 是否可用预览图当做 icon | Boolean |
fileType | 文件类型 | String |
删除历史版本
deleteHistory 实现删除历史版本。权限要求:delete_history、admin 或 space_admin 权限。const res = await smh.history.deleteHistory({spaceId: 'your-space-id',requestBody: ['1', '2', '3']});if (res.status === 204) {console.log('历史版本删除成功');}
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
spaceId | 空间 ID | String | 是 |
requestBody | 删除的 HistoryId 集合,单次最多传入 100 个 | Array | 是 |
userId | 用户身份识别 | String | 否 |
返回值说明:
HTTP 状态码:204,删除成功,无响应体。
清空历史版本
emptyHistory 实现清空历史版本。请求此接口时,需要先关闭历史版本。警告:
此接口会清空整个 library 全部文件的历史版本,不可找回数据,请谨慎操作!
权限要求:admin 权限。
const res = await smh.history.emptyHistory({});if (res.status === 202) {console.log('历史版本清空任务已创建', res.data);}
参数说明
参数名 | 参数描述 | 类型 | 是否必填 |
userId | 用户身份识别 | String | 否 |
返回值说明
HTTP 状态码:202,删除成功,返回异步任务 ID。
响应字段说明
字段 | 说明 | 类型 |
taskId | 异步任务 ID | Number |