库文件操作

更新: 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中最小的操作时间; 当modecompare时, 返回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 - 文件路径, 需传fullpathhash其中一个参数
hash - 文件唯一标识, 需传fullpathhash其中一个参数
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 - 文件路径, 需传fullpathhash其中一个参数
hash - 文件唯一标识, 需传fullpathhash其中一个参数
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 - 文件路径, 需传fullpathhash其中一个参数
hash - 文件唯一标识, 需传fullpathhash其中一个参数
annotation on表示开启批注功能, display表示默认打开侧边批注列表
annotation_mode 批注模式, 默认不传表示允许添加批注, view表示只允许查看, admin表示允许修改和删除批注, 没有指定批注操作人时, 强制为view
op_id - 操作人ID, 可以用out_idaccount代替
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
}

currenttotal单位: 秒


文件协同编辑链接

需要开通协同编辑功能, 只支持Office文档

POST /m-open/1/file/cedit_url HTTP/1.1

注意: 协同编辑不支持匿名编辑, 必须指定编辑人, 参数op_idout_idaccount必须传其中一个

名称 必需 说明
org_client_id 库授权client_id
fullpath - 文件路径, 需传fullpathhash其中一个参数
hash - 文件唯一标识, 需传fullpathhash其中一个参数
readonly - 1表示只读打开, 默认允许编辑
timeout - 编辑链接过期时间, 单位秒, 默认3600, 1小时后过期
op_id - 操作人ID, 可以用out_idaccount代替
out_id - 操作人外部系统帐号ID
account - 操作人外部系统帐号
dateline 当前unix时间戳, 单位秒
sign 签名

返回格式

json

返回结果

{
    "url": 协同编辑链接
}

文件(夹)信息

注意: 当前接口返回的数据较多, 会消耗大量服务器资源, 请慎重调用

POST /m-open/1/file/info HTTP/1.1

请求参数

名称 必需 说明
org_client_id 库授权client_id
fullpath - 文件路径, 需传fullpathhash其中一个参数
hash - 文件唯一标识, 需传fullpathhash其中一个参数
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 - 文件完整路径, fullpathtag只需传其中一个
tag - 通过标签删除, 多个使用分号;分隔, fullpathtag只需传其中一个
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 - 通过标签删除, 多个使用分号;分隔, fullpathstag只需传其中一个
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 签名

注意: codefullpath只需传其中一个参数

返回结果

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 参数:
    1. 不传或传 0 重置成员权限, 使之与所在部门的权限保持一致
    2. 1 清空成员权限

返回结果

HTTP 200


获取文件权限

POST /m-open/1/file/get_permission HTTP/1.1

请求参数

名称 必需 说明
org_client_id 库授权client_id
fullpath 文件完整路径
member_id - 用户ID, member_idout_idaccount只需指定其中一个参数, 如果未指定用户, 则返回对该文件(夹)拥有权限的所有用户及对应的权限
out_id - 用户外部系统帐号ID, member_idout_idaccount只需指定其中一个参数
account - 用户外部系统帐号, member_idout_idaccount只需指定其中一个参数
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 - 文件路径, 需传fullpathhash其中一个参数
hash - 文件唯一标识, 需传fullpathhash其中一个参数
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 - 文件路径, 需传fullpathhash其中一个参数
hash - 文件唯一标识, 需传fullpathhash其中一个参数
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 外链