库文件操作
更新: 2025-10-30
- 文件列表
- 文件最近更新列表
- 文件更新数量
- 文件下载链接
- 文件预览/批注链接
- 文件协同编辑链接
- 文件(夹)信息
- 文件搜索
- 创建文件夹
- 上传文件
- 网页上传
- 复制文件(夹)
- 高级复制文件(夹)
- 移动文件(夹)
- 删除文件(夹)
- 彻底删除文件(夹)
- 回收站
- 恢复已删除文件
- 获取文件历史
- 获取文件外链
- 关闭文件外链
- 获取开启外链的文件列表
- 文件锁的操作
- 设置文件夹权限继承状态
- 获取文件夹单独设置的权限
- 修改文件夹权限
- 重置或移除文件夹权限
- 获取文件权限
- 添加标签
- 删除标签
- 添加或修改元数据
- 删除元数据
- 统计信息
- 查询队列状态
API域名
Host: yk3.gokuai.com
注意: 库文件操作API使用的secret是 库授权 后获得的 org_client_secret
参数说明
sign
参考 访问控制 中的算法说明, 对接口请求参数进行签名计算, 如果接口返回错误: error_code=
401041, 表示签名验证失败, 可能是由于中文编码不一致导致的所有接口参数的编码必须是
UTF-8编码, 并且需要进行URL编码, 具体参考 约定
fullpath
文件或文件夹在文件库中的完整路径
例如:
fullpath=
readme.txt表示存放在文件库根目录下的名为readme.txt的文件fullpath=
documents/project.docx表示存放在名为documents的文件夹下, 文件名为project.docx的文件
filename
文件或文件夹的名称, 同一个文件夹下不能存在两个相同
filename的文件或文件夹
hash
文件或文件夹在文件库中的唯一标识, 改名或移动并不会修改
hash的值
filehash
文件内容的checksum值, 是文件内容的唯一标识, 文件名不同, 但文件内容相同, 它们的
filehash是相同的
op_id
用于指定操作人ID, 即云库中的用户ID
op_name
用来指定操作人名称, 开发API是以最高权限对文件进行操作, 如果需要在云库用户界面中显示具体操作人名称, 可以用
op_name来指定用于显示的姓名
文件列表
POST /m-open/1/file/ls HTTP/1.1
请求参数
| 名称 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | 是 | 文件夹路径, 空字符串表示根目录 |
| tag | 否 | 返回fullpath下所有层级中带指定标签的文件及文件夹 |
| start | 否 | 开始位置, 默认0 |
| size | 否 | 返回条数, 默认100 |
| hashs | 否 | 获取指定hash的文件, 半角逗号,分隔 |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回格式
json
返回结果
{
count:
list:
[
{
hash:
dir:
fullpath:
filename:
filehash:
filesize:
create_member_name:
create_dateline:
last_member_name:
last_dateline:
property:
},
...
]
}
| 字段 | 类型 | 说明 |
|---|---|---|
| count | number | 文件总数 |
| list | array | 格式见下 |
| 字段 | 类型 | 说明 |
|---|---|---|
| hash | string | 文件唯一标识 |
| dir | number | 是否文件夹, 1是, 0否 |
| fullpath | string | 文件路径 |
| filename | string | 文件名称 |
| filehash | string | 文件内容hash, 如果是文件夹, 则为空 |
| filesize | number | 文件大小, 如果是文件夹, 则为0 |
| create_member_name | string | 文件创建人名称 |
| create_dateline | number | 文件创建时间戳 |
| last_member_name | string | 文件最后修改人名称 |
| last_dateline | number | 文件最后修改时间戳 |
| property | object | {"tag": "标签", "op_name": "操作人名称", "inherit": 0/1 文件夹权限是否继承上级, "permisson": 文件权限} |
property中的tag, 多个标签使用分号;分隔
文件最近更新列表
POST /m-open/1/file/updates HTTP/1.1
请求参数
| 名称 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| mode | 否 | 获取模式, 空或compare, 详情见下面的注意项 |
| fetch_dateline | 是 | unix时间戳, 单位毫秒, 默认0 |
| dir | 否 | 获取文件或文件夹, 不传表示都返回, 1只返回文件夹, 0只返回文件 |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
注意
mode为空时, 按操作时间倒序获取数据, 获取操作时间早于fetch_dateline的数据, 如果fetch_dateline不传、为空或为0时, 从当前时间开始获取列表, 返回的列表中不包括已删除的文件mode=compare时, 按操作时间顺序获取数据, 获取操作时间迟于fetch_dateline的数据,fetch_dateline=0时, 从最早操作的文件开始获取列表, 返回的列表中包括已删除的文件每次请求最多只会返回
100条数据, 如果要获取所有数据, 需要将每次返回的fetch_dateline作为下一次请求的参数锁定, 解锁, 标签变化, 权限变化也会变更操作时间
返回格式
json
返回结果
| 字段 | 类型 | 说明 |
|---|---|---|
| fetch_dateline | number | 单位毫秒; 当mode为空时, 返回list中最小的操作时间; 当mode为compare时, 返回list中最大的操作时间 |
| list | array | 格式见下 |
| 字段 | 类型 | 说明 |
|---|---|---|
| cmd | number | 当mode=compare 时才会返回cmd字段, 0表示删除, 1表示未删除 |
| hash | string | 文件唯一标识 |
| dir | number | 是否文件夹, 1是, 0否 |
| fullpath | string | 文件路径 |
| filename | string | 文件名称 |
| filehash | string | 文件内容hash, 如果是文件夹, 则为空 |
| filesize | number | 文件大小, 如果是文件夹, 则为0 |
| create_member_name | string | 文件创建人名称 |
| create_dateline | number | 文件创建时间戳, 单位秒 |
| last_member_name | string | 文件最后修改人名称 |
| last_dateline | number | 文件最后修改时间戳, 单位秒 |
文件更新数量
POST /m-open/1/file/updates_count HTTP/1.1
请求参数
| 名称 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| begin_dateline | 是 | unix时间戳, 单位毫秒, 开始时间 |
| end_dateline | 是 | unix时间戳, 单位毫秒, 结束时间 |
| showdel | 否 | 1同时返回删除的文件, 默认0不返回 |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回格式
json
返回结果
{
count: 更新数量
}
文件下载链接
POST /m-open/1/file/download_url HTTP/1.1
文件下载链接一般的有效时间仅为10分钟, 过期后下载链接无法使用, 根据存储类型不同可能会返回多个下载链接
请求参数
| 名称 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | - | 文件路径, 需传fullpath或hash其中一个参数 |
| hash | - | 文件唯一标识, 需传fullpath或hash其中一个参数 |
| filehash | 否 | 文件内容唯一标识, 用于下载历史版本, 不传表示下载当前版本 |
| open | 否 | 1返回能直接在浏览器中打开的文件链接, 默认0 |
| filename | 否 | 指定下载文件名,默认使用原名称 |
| net | 否 | in表示获取内网下载链接, 默认空返回公网链接 |
| op_id | - | 操作人ID, 如果操作人不是云库用户, 可以用op_name代替 |
| op_name | - | 操作人名称, 如果指定了op_id, 就不需要op_name |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回格式
json
返回结果
{
"urls": [文件下载链接数组(可能有多个下载链接)]
}
文件预览/批注链接
POST /m-open/1/file/preview_url HTTP/1.1
请求参数
获取预览链接
| 名称 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | - | 文件路径, 需传fullpath或hash其中一个参数 |
| hash | - | 文件唯一标识, 需传fullpath或hash其中一个参数 |
| watermark | 否 | 1显示水印, 默认0不显示 |
| member_name | 否 | 在水印中显示的文档查看人姓名 |
| thumbnail | 否 | 1返回图片缩略图链接, 默认0不返回 |
| op_id | - | 操作人ID, 如果操作人不是云库用户, 可以用op_name代替 |
| op_name | - | 操作人名称, 如果指定了op_id, 就不需要op_name |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
获取批注链接
需要开通批注功能, 只支持PDF和图片文件
| 名称 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | - | 文件路径, 需传fullpath或hash其中一个参数 |
| hash | - | 文件唯一标识, 需传fullpath或hash其中一个参数 |
| annotation | 是 | on表示开启批注功能, display表示默认打开侧边批注列表 |
| annotation_mode | 否 | 批注模式, 默认不传表示允许添加批注, view表示只允许查看, admin表示允许修改和删除批注, 没有指定批注操作人时, 强制为view |
| op_id | - | 操作人ID, 可以用out_id或account代替 |
| out_id | - | 操作人外部系统帐号ID |
| account | - | 操作人外部系统帐号 |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回格式
json
返回结果
{
"url": 文档预览链接(10分钟有效),
"thumbnail": 缩略图链接(图片文件才支持)
}
预览页面事件通知
使用iframe引用预览页面, 并增加message事件监听
<iframe frameborder="0" src="{预览URL}"></iframe>
<script type="text/javascript">
window.addEventListener('message', function (e) {
try {
const msg = JSON.parse(e.data);
if (typeof msg === 'object' && msg.type == 'GK_VIEWER_EVENT') {
//msg结构见下面的说明
}
} catch (err) {
console.error(err);
}
});
</script>
msg 结构
- 文档, 加载成功和换页时触发
{
"type": "GK_VIEWER_EVENT",
"page": {
"current": 1,
"total": 23
},
"time": 1612839014841
}
- 视频和音频, 开始播放和结束时触发, 播放中每5秒触发一次
{
"type": "GK_VIEWER_EVENT",
"progress": {
"current": 18.208222,
"total": 1260.34
},
"time": 1612839014841
}
current和total单位: 秒
文件协同编辑链接
需要开通协同编辑功能, 只支持Office文档
POST /m-open/1/file/cedit_url HTTP/1.1
注意: 协同编辑不支持匿名编辑, 必须指定编辑人, 参数op_id、out_id、account必须传其中一个
| 名称 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | - | 文件路径, 需传fullpath或hash其中一个参数 |
| hash | - | 文件唯一标识, 需传fullpath或hash其中一个参数 |
| readonly | - | 1表示只读打开, 默认允许编辑 |
| timeout | - | 编辑链接过期时间, 单位秒, 默认3600, 1小时后过期 |
| op_id | - | 操作人ID, 可以用out_id或account代替 |
| out_id | - | 操作人外部系统帐号ID |
| account | - | 操作人外部系统帐号 |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回格式
json
返回结果
{
"url": 协同编辑链接
}
文件(夹)信息
注意: 当前接口返回的数据较多, 会消耗大量服务器资源, 请慎重调用
POST /m-open/1/file/info HTTP/1.1
请求参数
| 名称 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | - | 文件路径, 需传fullpath或hash其中一个参数 |
| hash | - | 文件唯一标识, 需传fullpath或hash其中一个参数 |
| net | 否 | in表示获取内网下载链接, 默认空返回公网链接 |
| attribute | 否 | 1表示获取额外属性, 包括子文件数量、大小,子文件夹数量, 10只返回最基础的信息, 默认0 |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| hid | 否 | 版本ID |
| nop | 否 | 文件权限返回,1:不包库权限(只返回文件夹上设置的权限),0或不传:包含库权限 |
| ignores | 否 | 忽略哪些返回信息(,隔开) (tag,favorite,property,permission,lock,url,preview,thumbnail) |
| sign | 是 | 签名 |
返回格式
json
返回结果
默认返回:
{
hash:
dir:
fullpath:
filename:
filesize:
create_member_name:
create_dateline:
last_member_name:
last_dateline:
uri:
preview:
thumbnail:
tag:
file_count:
folder_count:
files_size:
property:
}
当attribute=10时, 返回:
{
hash:
dir:
fullpath:
filename:
filehash:
filesize:
}
| 字段 | 类型 | 说明 |
|---|---|---|
| hash | string | 文件唯一标识 |
| dir | number | 是否文件夹 |
| fullpath | string | 文件路径 |
| filename | string | 文件名称 |
| filehash | string | 文件内容hash |
| filesize | number | 文件大小 |
| create_member_name | string | 文件创建人 |
| create_dateline | number | 文件创建时间戳(10位精确到秒) |
| last_member_name | string | 文件最后修改人 |
| last_dateline | number | 文件最后修改时间戳(10位精确到秒) |
| uri | string | 文件下载链接 |
| preview | string | 文件预览链接 |
| thumbnail | string | 文件缩略图链接 |
| tag | string | 文件标签 |
| file_count | number | 子文件数量 |
| folder_count | number | 子文件夹数量 |
| files_size | number | 子文件大小 |
| property | object | {"tag": "标签", "op_name": "操作人名称", "inherit": 0/1 文件夹权限是否继承上级, "permisson": 文件权限} |
property中的tag, 多个标签使用分号;分隔
文件搜索
POST /m-open/1/file/search HTTP/1.1
请求参数
| 名称 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| keywords | 是 | 搜索关键字 |
| path | 否 | 需要搜索的文件夹, 默认空搜索整个库 |
| scope | 否 | json字符串,默认["filename","tag"], filename按文件名、tag按标签、content按全文检索 |
| start | 否 | 开始位置, 默认0 |
| size | 否 | 返回条数, 默认100 |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回格式
同文件列表
创建文件夹
POST /m-open/1/file/create_folder HTTP/1.1
请求参数
| 参数 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | 是 | 文件夹路径 |
| op_id | - | 操作人ID, 个人库默认是库拥有人ID, 如果操作人不是云库用户, 可以用op_name代替 |
| op_name | - | 操作人名称, 如果指定了op_id, 就不需要op_name |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回格式
{
"hash": "文件唯一标识",
"fullpath": "文件夹完整路径"
}
上传文件
分块方式上传文件
步骤1: 请求上传
POST /m-open/1/file/create_file HTTP/1.1
请求参数
| 参数 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | 是 | 文件完整路径 |
| filehash | 是 | 文件内容sha1值, 40字节, 英文字母小写, 不参与签名计算 |
| filesize | 是 | 文件大小, 不参与签名计算 |
| op_id | - | 操作人ID, 个人库默认是库拥有人ID, 如果操作人不是云库用户, 可以用op_name代替 |
| op_name | - | 操作人名称, 如果指定了op_id, 就不需要op_name |
| overwrite | 否 | 是否覆盖同名文件, 1覆盖, 默认0不覆盖, 文件名后增加数字标识 |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回格式
| 字段 | 类型 | 说明 |
|---|---|---|
| hash | string | 文件唯一标识 |
| fullpath | string | 文件完整路径 |
| state | number | 是否需要调用分块上传, 0需要,1不需要(已秒传) |
| server | string | 上传服务器 |
步骤2: 分块上传文件
请参考文档: 分块上传
网页上传
通过网页表单方式直接上传文件
步骤1: 获取上传服务器
注意: 请使用后端代码调用该接口, 防止org_client_secret外泄
POST /m-open/1/file/upload_servers HTTP/1.1
请求参数
| 参数 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | 是 | 文件完整路径 |
| timeout | 是 | 返回的上传临时密钥有效时间, 单位秒, 如300, 表示5分钟后失效 |
| rand | 是 | 随机字符串, 长度任意 |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回格式
{
"m-upload": [
"http://upload_server",
...
],
"key": "上传密钥"
}
| 名称 | 说明 |
|---|---|
| m-upload | 上传服务器, 内容为数组, 可随机选择一个, 上传服务器包含协议和端口 |
| key | 上传的临时密钥, 在实际上传文件时使用, 密钥经过timeout秒后将失效 |
步骤2: 上传文件
使用multipart/form-data表单方式上传文件
POST /2/web_upload HTTP/1.1
Host: {upload_server}
Content-Type: multipart/form-data; boundary=xxxxx
请求参数
| 参数 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| key | 是 | 上传的临时密钥 |
| path | 是 | 上传的目标文件夹, 根目录传空字符串 |
| name | 是 | 文件名 |
| overwrite | 否 | 是否覆盖同名文件, 1覆盖, 默认0不覆盖, 文件名后增加数字标识 |
| op_id | - | 操作人ID, 个人库默认是库拥有人ID, 如果操作人不是云库用户, 可以用op_name代替 |
| op_name | - | 操作人名称, 如果指定了op_id, 就不需要op_name |
| filefield | 是 | 固定值file |
| file | 是 | 上传的文件内容 |
返回格式
{
"fullpath": "文件完整路径",
"filesize": 文件大小,
"hash": "文件唯一标识"
}
复制文件(夹)
POST /m-open/1/file/copy HTTP/1.1
请求参数
| 参数 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| from_fullpath | 是 | 源文件路径 |
| fullpath | 是 | 目标文件完整路径(含文件名) |
| op_id | - | 操作人ID, 个人库默认是库拥有人ID, 如果操作人不是云库用户, 可以用op_name代替 |
| op_name | - | 操作人名称, 如果指定了op_id, 就不需要op_name |
| overwrite | 否 | 是否覆盖同名文件,0不覆盖,1覆盖,默认0 |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回格式
json
返回结果
{
"hash": "文件唯一标识",
"fullpath": "文件完整路径",
"queue_id": "队列ID"
}
注意: 如果返回了 queue_id 表示进入异步处理队列, 请求返回并不代表已完成操作, 调用 查询队列状态 查询执行结果
高级复制文件(夹)
POST /m-open/1/file/mcopy HTTP/1.1
请求参数
| 参数 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| from_fullpaths | 是 | 源文件路径 , 如果多个使用竖号 | 分隔 |
| paths | 是 | 目标文件夹(不包含文件名), 如果复制多份使用竖号 | 分隔 |
| copy_all | 否 | 1复制文件的所有属性, 包括操作人, 默认0不复制 |
| op_id | - | 操作人ID, 个人库默认是库拥有人ID, 如果操作人不是云库用户, 可以用op_name代替 |
| op_name | - | 操作人名称, 如果指定了op_id, 就不需要op_name |
| sp | 否 | 特殊参数, 预留 |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回格式
json
返回结果
[
{
"hash": "文件文件唯一标识",
"fullpath": "文件完整路径",
"queue_id": "队列ID"
},
...
]
字段说明见 复制文件(夹)
移动文件(夹)
POST /m-open/1/file/move HTTP/1.1
请求参数
| 参数 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | 是 | 要移动文件的路径 |
| dest_fullpath | 是 | 移动后的路径(含文件名) |
| op_id | - | 操作人ID, 个人库默认是库拥有人ID, 如果操作人不是云库用户, 可以用op_name代替 |
| op_name | - | 操作人名称, 如果指定了op_id, 就不需要op_name |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回格式
json
返回结果
HTTP 200
删除文件(夹)
POST /m-open/1/file/del HTTP/1.1
请求参数
| 参数 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | - | 文件完整路径, fullpath和tag只需传其中一个 |
| tag | - | 通过标签删除, 多个使用分号;分隔, fullpath和tag只需传其中一个 |
| path | - | 路径, 当使用tag方式删除时, 可以指定路径进行删除, 默认空, 不指定 |
| op_id | - | 操作人ID, 个人库默认是库拥有人ID, 如果操作人不是云库用户, 可以用op_name代替 |
| op_name | - | 操作人名称, 如果指定了op_id, 就不需要op_name |
| destroy | 否 | 1彻底删除文件, 不进回收站, 默认0删除文件进入回收站 |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回格式
json
返回结果
HTTP 200
彻底删除文件(夹)
POST /m-open/1/file/del_completely HTTP/1.1
请求参数
| 参数 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpaths | - | 文件路径,多个使用竖号 | 分隔 |
| tag | - | 通过标签删除, 多个使用分号;分隔, fullpaths和tag只需传其中一个 |
| op_id | - | 操作人ID, 个人库默认是库拥有人ID, 如果操作人不是云库用户, 可以用op_name代替 |
| op_name | - | 操作人名称, 如果指定了op_id, 就不需要op_name |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回格式
json
返回结果
HTTP 200
回收站
POST /m-open/1/file/recycle HTTP/1.1
请求参数
| 参数 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| start | 否 | 开始位置, 默认0 |
| size | 否 | 返回条数, 默认100 |
| order | 否 | 排序字段 |
| keyword | 否 | 搜索关键词 |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回格式
json
返回结果
{
count:
list:
[
{
hash:
dir:
fullpath:
filename:
filehash:
filesize:
create_member_name:
create_dateline:
last_member_name:
last_dateline:
},
...
]
}
| 字段 | 类型 | 说明 |
|---|---|---|
| count | number | 文件总数 |
| list | array | 格式见下 |
| 字段 | 类型 | 说明 |
|---|---|---|
| hash | string | 文件唯一标识 |
| dir | number | 是否文件夹, 1是, 0否 |
| fullpath | string | 文件路径 |
| filename | string | 文件名称 |
| filehash | string | 文件内容hash, 如果是文件夹, 则为空 |
| filesize | number | 文件大小, 如果是文件夹, 则为0 |
| create_member_name | string | 文件创建人名称 |
| create_dateline | number | 文件创建时间戳, 单位秒 |
| last_member_name | string | 文件最后修改人名称 |
| last_dateline | number | 文件最后修改时间戳, 单位秒 |
恢复已删除文件
POST /m-open/1/file/recover HTTP/1.1
请求参数
| 参数 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpaths | 是 | 文件路径,多个使用竖号 | 分隔 |
| op_id | - | 操作人ID, 个人库默认是库拥有人ID, 如果操作人不是云库用户, 可以用op_name代替 |
| op_name | - | 操作人名称, 如果指定了op_id, 就不需要op_name |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回格式
json
返回结果
HTTP 200
获取文件历史
POST /m-open/1/file/history HTTP/1.1
请求参数
| 参数 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | 是 | 文件完整路径 |
| start | 否 | 开始位置, 默认0 |
| size | 否 | 返回条数, 默认20 |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回格式
json
返回结果
{
"count":
"list":[
{
"hid":
"act":
"act_name":
"dir":
"hash":
"fullpath":
"filehash":
"filesize":
"member_id":
"member_name":
"dateline":
"property":
},
...
]
}
| 字段 | 类型 | 说明 |
|---|---|---|
| count | number | 历史总数 |
| list | array | 格式见下 |
| 字段 | 类型 | 说明 |
|---|---|---|
| hid | string | 历史版本ID |
| act | number | 具体文件操作类型 |
| act_name | string | 具体文件操作类型描述 |
| dir | number | 是否文件夹, 1是, 0否 |
| hash | string | 文件唯一标识 |
| fullpath | string | 文件路径 |
| filename | string | 文件名称 |
| filehash | string | 文件内容hash, 如果是文件夹, 则为空 |
| filesize | number | 文件大小, 如果是文件夹, 则为0 |
| member_id | number | 文件操作人 |
| member_name | string | 文件操作人名称 |
| dateline | number | 文件操作时间戳, 单位秒 |
| property | string | 扩展属性, macheine, ip等 |
获取文件外链
POST /m-open/1/file/link HTTP/1.1
请求参数
| 参数 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | 是 | 文件完整路径 |
| deadline | 否 | 到期时间时间戳,默认48小时后 |
| auth | 否 | preview文件预览, download文件预览和下载, upload预览、下载、文件夹上传,默认preview |
| password | 否 | 访问密码 |
| dir | 否 | 是否文件夹1是 0不是 默认 0 |
| startline | 否 | 生效的时间戳,不传则立即生效 |
| keep | 否 | 外链不随文件修改而更新, 1不更新, 默认不传表示随文件修改而更新, 目前只支持文件外链 |
| access_limit | 否 | 外链访问次数限制, 默认不传表示不限制 |
| op_id | - | 操作人ID, 个人库默认是库拥有人ID, 如果操作人不是云库用户, 可以用op_name代替 |
| op_name | - | 操作人名称, 如果指定了op_id, 就不需要op_name |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回格式
json
返回结果
{
"link": "文件外链",
"code": "外链码"
}
关闭文件外链
POST /m-open/1/file/link_close HTTP/1.1
请求参数
| 参数 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| code | - | 外链码, 关闭该码对应的外链 |
| fullpath | - | 文件完整路径, 关闭该文件的所有外链 |
| op_id | - | 操作人ID, 个人库默认是库拥有人ID, 如果操作人不是云库用户, 可以用op_name代替 |
| op_name | - | 操作人名称, 如果指定了op_id, 就不需要op_name |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
注意: code和fullpath只需传其中一个参数
返回结果
HTTP 200
获取开启外链的文件列表
POST /m-open/1/file/links HTTP/1.1
请求参数
| 名称 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| file | 否 | 是否只返回文件, 1只返回文件, 0全部返回, 默认0 |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回结果
[
{
"filename": 文件名或文件夹名,
"filesize": 文件大小,
"link": 文件外链,
"deadline": 到期时间戳 -1表示永久有效,
"password": 是否加密, 1加密, 0无
},
...
]
文件锁的操作
POST /m-open/1/file/lock HTTP/1.1
请求参数
| 参数 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | 是 | 文件完整路径 |
| lock | 是 | lock-上锁,unlock-解锁 |
| op_id | - | 操作人ID, 个人库默认是库拥有人ID, 如果操作人不是云库用户, 可以用op_name代替 |
| op_name | - | 操作人名称, 如果指定了op_id, 就不需要op_name |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回结果
HTTP 200
设置文件夹权限继承状态
POST /m-open/1/file/set_permission_inherit
请求参数
| 名称 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | 是 | 文件夹完整路径 |
| inherit | 是 | 1表示继承, 0表示不继承 |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回结果
HTTP 200
获取文件夹单独设置的权限
注意: 仅返回单独设置的权限, 不包括从上级或部门继承的权限
POST /m-open/1/file/get_all_permission HTTP/1.1
请求参数
| 名称 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | 是 | 文件夹完整路径 |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回结果
见 权限返回结果
修改文件夹权限
POST /m-open/1/file/file_permission HTTP/1.1
请求参数
| 名称 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | 是 | 文件夹完整路径 |
| permissions | 是 | 权限, 如 {用户ID: ["file_preview", "file_read"], ...} 或 {部门ID: ["file_preview", "file_read"], ...} |
| is_group | 否 | 1设置部门权限, 默认0设置用户权限 |
| is_out | 否 | 是否外部成员 1 是, 默认0否 |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回结果
HTTP 200
重置或移除文件夹权限
POST /m-open/1/file/reset_permission HTTP/1.1
| 名称 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | 是 | 文件夹完整路径 |
| members | - | 需要重置/移除的成员ID, 多个使用半角逗号,分隔 |
| groups | - | 需要重置/移除的部门ID, 多个使用半角逗号,分隔 |
| clear | 否 | 清空通过部门加入的成员的权限, 该参数在非继承状态时有效, 默认 0 , 具体见下面的注意点 |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
注意:
- 当文件夹为继承状态时, 该操作将重置指定成员或部门的权限, 使之与上级文件夹权限保持一致; 如果成员通过部门加入, 则重置后权限与部门权限保持一致
- 当文件夹为非继承状态时, 该操作将移除指定成员或部门, 如果成员通过部门加入, 由于无法移除这些成员, 配合
clear参数:- 不传或传
0重置成员权限, 使之与所在部门的权限保持一致 - 传
1清空成员权限
- 不传或传
返回结果
HTTP 200
获取文件权限
POST /m-open/1/file/get_permission HTTP/1.1
请求参数
| 名称 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | 是 | 文件完整路径 |
| member_id | - | 用户ID, member_id、out_id和account只需指定其中一个参数, 如果未指定用户, 则返回对该文件(夹)拥有权限的所有用户及对应的权限 |
| out_id | - | 用户外部系统帐号ID, member_id、out_id和account只需指定其中一个参数 |
| account | - | 用户外部系统帐号, member_id、out_id和account只需指定其中一个参数 |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回结果
如果指定了用户:
[
"file_read",
"file_preview",
"file_write",
"file_delete"
]
未指定用户时, 返回结果见 权限返回结果 , 注意结果中仅返回members
添加标签
POST /m-open/1/file/add_tag HTTP/1.1
请求参数
| 名称 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | 是 | 文件完整路径 |
| tag | 是 | 标签, 多个使用分号;分隔 |
| op_id | - | 操作人ID, 个人库默认是库拥有人ID, 如果操作人不是云库用户, 可以用op_name代替 |
| op_name | - | 操作人名称, 如果指定了op_id, 就不需要op_name |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回结果
HTTP 200
删除标签
POST /m-open/1/file/del_tag HTTP/1.1
请求参数
| 名称 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | 是 | 文件完整路径 |
| tag | 是 | 标签, 多个使用分号;分隔 |
| op_id | - | 操作人ID, 个人库默认是库拥有人ID, 如果操作人不是云库用户, 可以用op_name代替 |
| op_name | - | 操作人名称, 如果指定了op_id, 就不需要op_name |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回结果
HTTP 200
添加或修改元数据
需要先在企业管理后台按需配置元数据模版和属性, 并在文件库上关联元数据模版
POST /m-open/1/file/set_metadata HTTP/1.1
请求参数
| 名称 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | - | 文件路径, 需传fullpath或hash其中一个参数 |
| hash | - | 文件唯一标识, 需传fullpath或hash其中一个参数 |
| key | 是 | 元数据模版key |
| metadata | 是 | JSON Object字符串 |
| display | 否 | 在文件列表上展示的属性, 值为属性key, 多个使用半角逗号,分隔 |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
注意
- 参数
metadata的类型为JSON Object字符串, 内容为需要添加或修改的元数据属性, JSON Object的键为元数据属性的key
例如, 设置归档状态和归档时间,
归档状态的key为4736_620f629b9d63f 字符串型, 归档时间的key为4736_62b93d22140fc 时间型
{
"4736_620f629b9d63f": "已归档",
"4736_62b93d22140fc": "2022-03-01 12:00:00",
...
}
各类型属性的值举例:
| 属性类型 | 值 |
|---|---|
| 字符串型 | "已归档" |
| 数值型 | 9820 |
| 日期型 | "2022-03-01" |
| 时间型 | "2022-03-01 12:00:00" |
| 单选型 | "1" |
| 多选型 | ["红色", "绿色", "蓝色"] |
- 参数
display用于指定哪些属性需要在文件列表上展示, 如果不指定则不展示在文件列表
返回结果
HTTP 200
删除元数据
POST /m-open/1/file/del_metadata HTTP/1.1
请求参数
| 名称 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| fullpath | - | 文件路径, 需传fullpath或hash其中一个参数 |
| hash | - | 文件唯一标识, 需传fullpath或hash其中一个参数 |
| key | 是 | 元数据模版key |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回结果
HTTP 200
统计信息
POST /m-open/1/file/stat HTTP/1.1
请求参数
| 名称 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回结果
{
"org_id": ,
"org_name": ,
"mount_id": ,
"capacity": ,
"size": ,
"size_recycle": ,
"count_file": ,
"storage_point":
}
| 字段 | 类型 | 说明 |
|---|---|---|
| org_id | number | 库ID |
| org_name | string | 库名称 |
| mount_id | number | 库空间ID |
| capacity | number | 空间配额, 单位字节 |
| size | number | 已使用空间, 单位字节 |
| size_recycle | number | 已使用空间中回收站的占用, 单位字节 |
| count_file | number | 文件数量, 不包括文件夹 |
| storage_point | string | 存储点 |
查询队列状态
POST /m-open/1/file/queue_status HTTP/1.1
请求参数
| 参数 | 必需 | 说明 |
|---|---|---|
| org_client_id | 是 | 库授权client_id |
| queue_id | 是 | 队列ID |
| dateline | 是 | 当前unix时间戳, 单位秒 |
| sign | 是 | 签名 |
返回格式
json
返回结果
{
"status": 状态,
"fullpath": "完整路径",
"add_dateline": 加入时间戳,
"start_dateline": 开始时间戳,
"finish_dateline": 结束时间戳
}
| 字段 | 类型 | 说明 |
|---|---|---|
| status | number | 状态, 0表示刚加入队列, 1表示正在处理, 2表示完成, 3表示出错 |
| fullpath | string | 文件完整路径 |
| add_dateline | number | 加入队列的时间戳, 单位秒 |
| start_dateline | number | 开始执行时间戳, 单位秒 |
| finish_dateline | number | 执行结束时间戳, 单位秒 |
权限返回结果
{
"members":
{
用户ID:
[
"file_preview",
"file_read",
"file_upload",
"file_write",
"file_delete",
"file_link"
],
...
},
"groups":
{
部门ID:
[
"file_preview",
"file_read",
"file_upload",
"file_write",
"file_delete",
"file_link"
],
...
}
}
| 权限 | 说明 |
|---|---|
| file_preview | 预览 |
| file_read | 下载 |
| file_upload | 新建/上传 |
| file_write | 修改/版本覆盖 |
| file_delete | 删除 |
| file_link | 外链 |