库文件操作
更新: 2022-10-20
- 文件列表
- 文件最近更新列表
- 文件更新数量
- 文件下载链接
- 文件预览/批注链接
- 文件协同编辑链接
- 文件(夹)信息
- 文件搜索
- 创建文件夹
- 上传文件
- 网页上传
- 复制文件(夹)
- 高级复制文件(夹)
- 移动文件(夹)
- 删除文件(夹)
- 彻底删除文件(夹)
- 回收站
- 恢复已删除文件
- 获取文件历史
- 获取文件外链
- 关闭文件外链
- 获取开启外链的文件列表
- 设置文件夹权限继承状态
- 获取文件夹单独设置的权限
- 修改文件夹权限
- 重置或移除文件夹权限
- 获取文件权限
- 添加标签
- 删除标签
- 添加或修改元数据
- 删除元数据
- 统计信息
- 查询队列状态
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时间戳, 单位秒 |
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 |
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 |
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 | 否 | 访问密码 |
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/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 设置用户权限 |
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 | 外链 |