库和文件
更新: 2022-06-29
使用 登录与授权 获得的access token
操作用户库和文件
- 文件库列表
- 创建文件库
- 文件列表
- 文件下载地址
- 文件预览地址
- 文件(夹)信息
- 文件夹内文件数量
- 新建文件夹
- 上传文件
- 网页上传
- 复制文件
- 移动文件
- 重命名文件
- 删除文件
- 添加文件到收藏夹
- 取消收藏
- 收藏夹文件列表
- 文件搜索
API域名
Host: yk3.gokuai.com
文件库列表
获取用户创建和加入的文件库
GET /m-api/1/account/mount
请求参数
参数 | 必需 | 说明 |
---|---|---|
token | 是 | access token |
dateline | 是 | 当前unix时间戳, 单位秒 |
sign | 是 | 签名 |
返回格式
json
返回结果
{
"list": [
{
"ent_id": 0,
"org_id": 1,
"org_name": "个人文件",
"mount_id": 1,
"org_type": 0,
"member_count": 0,
"owner_member_id": 2,
"org_logo_url": "http://dn-avatar.gokuai.com/36/3673e5b2778a8fa94db911c5c2473f8443c138fc.jpg",
"size_org_total": 21474836480,
"size_org_use": 806623,
"storage_point": "",
"storage_ethernet": 1
},
...
]
}
字段 | 类型 | 说明 |
---|---|---|
ent_id | int | 企业ID |
org_id | int | 库ID |
org_name | string | 库名称 |
mount_id | int | 库空间ID |
org_type | int | 库类型 |
member_count | int | 成员总数 |
org_logo_url | string | 库图标地址 |
size_org_total | bigint | 库空间总大小, 单位字节 |
size_org_use | bigint | 库已使用空间大小, 单位字节 |
storage_point | string | 存储点 |
storage_ethernet | int | 是否允许外网访问 |
注意:
ent_id
=0的库为不在企业中的个人库, org_type
=20的库为企业中的个人文件
库
创建文件库
注意: 用户需要有创建库的权限
POST /m-api/1/library/create
请求参数
参数 | 必需 | 说明 |
---|---|---|
token | 是 | access token |
name | 是 | 库名称 |
ent_id | 是 | 企业ID |
capacity | 否 | 存储空间限制, 单位字节, -1表示不限制 |
storage_point | 否 | 存储点, 不传表示默认存储 |
dateline | 是 | 当前unix时间戳, 单位秒 |
sign | 是 | 签名 |
返回格式
json
返回结果
字段 | 类型 | 说明 |
---|---|---|
org_id | int | 库ID |
mount_id | int | 库空间ID |
storage_point | string | 存储点 |
文件列表
GET /m-api/1/file/ls
请求参数
名称 | 必需 | 说明 |
---|---|---|
token | 是 | access token |
mount_id | 是 | 库空间ID |
fullpath | - | 文件夹完整路径, 取公开资料 文件夹下的市场文档 用公开资料\市场文档 , 默认根路径空字符串, fullpath 和sort 只需传一个即可 |
sort | - | 按文件类型列表文件, 1视频, 2音频, 3图片, 5文档, fullpath 和sort 只需传一个即可 |
dir | 否 | 1 表示只返回文件夹, 默认0 都返回 |
start | 否 | 开始位置, 默认0 |
size | 否 | 获取数量, 默认100 |
order | 否 | 默认按最后修改时间倒序排序, filename 按文件名排序, filesize 按文件大小排序 |
sign | 是 | 签名 |
返回格式
json
返回结果
{
"count": 2,
"list": [
{
"hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"mount_id": 1,
"dir": 1,
"fullpath": "公开资料",
"filename": "公开资料",
"filehash": "",
"filesize": 0,
"create_member_id": "1",
"create_member_name": "我",
"create_dateline": 1452569732,
"last_member_id": "1",
"last_member_name": "我",
"last_dateline": 1452569732,
"thumbnail": "",
"lock": 0
},
{
"hash": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"mount_id": 1,
"dir": 0,
"fullpath": "Word文档.doc",
"filename": "Word文档.doc",
"filehash": "ffffffffffffffffffffffffffffffffffffffff",
"filesize": 204800,
"create_member_id": "1",
"create_member_name": "我",
"create_dateline": 1442563789,
"last_member_id": "1",
"last_member_name": "我",
"last_dateline": 1449505954,
"thumbnail": "",
"lock": 0
},
......
]
}
字段 | 类型 | 说明 |
---|---|---|
hash | string | 文件唯一ID |
mount_id | int | 库空间ID |
dir | int | 是否文件夹 |
fullpath | string | 文件完整路径 |
filename | string | 文件名称 |
filehash | string | 文件内容checksum, 文件夹为空字符串 |
filesize | bigint | 文件大小 |
create_member_id | string | 文件创建人ID |
create_member_name | string | 文件创建人 |
create_dateline | int | 文件创建时间, unix时间戳, 单位秒 |
last_member_id | string | 文件最后修改人ID |
last_member_name | string | 文件最后修改人 |
last_dateline | int | 文件最后修改时间, unix时间戳, 单位秒 |
thumbnail | string | 文件缩略图URL |
lock | int | 文件是否锁定 |
文件下载地址
GET /m-api/2/file/open
请求参数
名称 | 必需 | 说明 |
---|---|---|
token | 是 | access token |
mount_id | 是 | 库空间ID |
fullpath | - | 文件完整路径, fullpath 和hash 传一个即可 |
hash | - | 文件唯一ID, fullpath 和hash 传一个即可 |
sign | 是 | 签名 |
返回格式
json
返回结果
{
"hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"filehash": "ffffffffffffffffffffffffffffffffffffffff",
"filesize": 204800,
"lock": 0,
"uris": [
"http://xxxxxx"
]
}
字段 | 类型 | 说明 |
---|---|---|
hash | string | 文件唯一ID |
filehash | string | 文件checksum |
filesize | string | 文件大小 |
lock | int | 文件是否锁定 |
uris | array | 下载地址数组, 默认情况只有一项, 下载地址有效期10分钟 |
文件预览地址
GET /m-api/2/file/preview_url
请求参数
名称 | 必需 | 说明 |
---|---|---|
token | 是 | access token |
mount_id | 是 | 库空间ID |
fullpath | - | 文件完整路径, fullpath 和hash 传一个即可 |
hash | - | 文件唯一ID, fullpath 和hash 传一个即可 |
watermark | 否 | 是否显示水印, 1 显示, 默认不显示 |
sign | 是 | 签名 |
返回格式
json
返回结果
{
"url": "预览地址"
}
文件(夹)信息
GET /m-api/2/file/info
请求参数
名称 | 必需 | 说明 |
---|---|---|
token | 是 | access token |
mount_id | 是 | 库空间ID |
fullpath | - | 文件完整路径, fullpath 和hash 传一个即可 |
hash | - | 文件唯一ID, fullpath 和hash 传一个即可 |
sign | 是 | 签名 |
返回格式
JSON
返回结果
{
"hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"mount_id": 1,
"dir": 0,
"fullpath": "Word文档.doc",
"filename": "Word文档.doc",
"filehash": "ffffffffffffffffffffffffffffffffffffffff",
"filesize": 204800,
"create_member_id": 1,
"create_member_name": "我",
"create_dateline": 1442563789,
"last_member_id": 1,
"last_member_name": "我",
"last_dateline": 1449505954,
"lock": 0,
"preview": "",
"thumbnail": ""
}
字段 | 类型 | 说明 |
---|---|---|
hash | string | 文件唯一ID |
mount_id | int | 库空间ID |
dir | int | 是否文件夹 |
fullpath | string | 文件完整路径 |
filename | string | 文件名称 |
filehash | string | 文件checksum, 文件夹返回空字符串 |
filesize | int | 文件大小 |
create_member_id | string | 文件创建人ID |
create_member_name | string | 文件创建人 |
create_dateline | int | 文件创建时间, unix时间戳, 单位秒 |
last_member_id | string | 文件最后修改人ID |
last_member_name | string | 文件最后修改人 |
last_dateline | int | 文件最后修改时间, unix时间戳, 单位秒 |
preview | string | 预览URI地址, 在浏览器打开需要在URI前增加域名http://yk3.gokuai.com , 文件夹不返回 |
thumbnail | string | 缩略图地址, 文件夹不返回 |
文件夹内文件数量
获取文件夹内的文件和子文件夹数量, 统计的数量包括下级所有文件和文件夹
GET /m-api/2/file/attribute
请求参数
参数 | 必需 | 说明 |
---|---|---|
token | 是 | access token |
mount_id | 是 | 库空间ID |
fullpath | - | 文件完整路径, fullpath 和hash 传一个即可 |
hash | - | 文件唯一ID, fullpath 和hash 传一个即可 |
dateline | 是 | 当前unix时间戳, 单位秒 |
sign | 是 | 签名 |
返回格式
json
返回结果
{
"file_count": 文件数量,
"folder_count": 子文件夹数量
}
新建文件夹
POST /m-api/2/file/create_folder
请求参数
名称 | 必需 | 说明 | |
---|---|---|---|
token | 是 | access token | |
mount_id | 是 | 库空间ID | |
fullpath | 否 | 文件夹完整路径 | |
overwrite | 否 | 默认1 覆盖, 传0 时, 如果文件夹已经存在, 则自动改名当前文件夹为xxx(2) |
|
dateline | 是 | 当前unix时间戳, 单位秒 | |
sign | 是 | 签名 |
上传文件
分块方式上传文件
步骤1: 请求上传
POST /m-api/2/file/create_file HTTP/1.1
请求参数
参数 | 必需 | 说明 |
---|---|---|
token | 是 | access token |
mount_id | 是 | 库空间ID |
fullpath | 是 | 文件完整路径 |
filehash | 是 | 文件内容sha1值, 40字节, 英文字母小写, 不参与签名计算 |
filesize | 是 | 文件大小, 不参与签名计算 |
overwrite | 否 | 是否覆盖同名文件, 1覆盖, 默认0不覆盖, 文件名后增加数字标识 |
sign | 是 | 签名 |
返回格式
{
"state": 1表示文件已秒传成功, 0表示需要调分块上传接口,
"hash": 文件唯一标识,
"fullpath": 文件完整路径,
"server": 上传服务器地址
}
步骤2: 分块上传文件
完成步骤1
后返回的state
为0
时,
请参考文档: 分块上传
网页上传
步骤1: 获得上传服务器
GET /m-api/1/file/upload_server
请求参数
参数 | 必需 | 说明 |
---|---|---|
token | 是 | access token |
mount_id | 是 | 库空间ID |
fullpath | 是 | 待上传的文件完整路径 |
sign | 是 | 签名 |
返回结果
{
"server": 上传服务器地址
}
步骤2: 上传文件内容
使用返回的上传服务器地址, 组合成上传URL
{upload server}/2/web_upload
使用multipart/form-data
表单方式上传文件
请求参数
参数 | 必需 | 说明 |
---|---|---|
token | 是 | access token |
mount_id | 是 | 库空间ID |
path | 是 | 文件上传的目标路径, 例如上传到doc 文件夹下则传doc , 上传到根目录则传空字符串 |
name | 是 | 文件的名称 |
overwrite | 否 | 是否覆盖同名文件, 1覆盖, 默认0不覆盖, 文件名后增加数字标识 |
filefield | 是 | 固定值file |
file | 是 | 要上传文件的数据 |
返回结果
正常返回 HTTP 200
{
"hash": 文件唯一标识,
"filesize": 文件大小,
"fullpath": 文件完整路径
}
错误
{
"error_code": 错误代码,
"error_msg": 错误消息,
"fullpath": 文件完整路径
}
复制文件
POST /m-api/1/file/copy HTTP/1.1
请求参数
名称 | 必需 | 说明 |
---|---|---|
token | 是 | access token |
mount_id | 是 | 待复制的文件库空间ID |
fullpath | - | 待复制的文件完整路径, fullpath 和fullpaths 传一个即可 |
fullpaths | - | 复制多个文件, 用竖号 | 分隔, fullpath 和fullpaths 传一个即可 |
target_mount_id | 否 | 复制的目标库空间ID, 不传表示库内复制 |
target_fullpath | 是 | 复制目标的上级完整路径 |
overwrite | 否 | 1 表示覆盖同名文件, 对文件夹无效 |
delete_from | 否 | 1 表示复制后删除原文件, 主要用于跨库移动文件 |
sign | 是 | 签名 |
返回结果
正常返回 HTTP 200
移动文件
注意: 只允许在库内移动文件
POST /m-api/1/file/move HTTP/1.1
请求参数
名称 | 必需 | 说明 |
---|---|---|
token | 是 | access token |
mount_id | 是 | 文件库空间ID |
fullpath | - | 待移动的文件完整路径, fullpath 和fullpaths 传一个即可 |
fullpaths | - | 移动多个文件, 用竖号 | 分隔, fullpath 和fullpaths 传一个即可 |
target_fullpath | 是 | 移动目标的上级完整路径 |
sign | 是 | 签名 |
返回结果
正常返回 HTTP 200
重命名文件
POST /m-api/1/file/rename HTTP/1.1
请求参数
名称 | 必需 | 说明 |
---|---|---|
token | 是 | access token |
mount_id | 是 | 文件库空间ID |
fullpath | 是 | 文件完整路径 |
newname | 是 | 新文件名 |
sign | 是 | 签名 |
返回结果
正常返回 HTTP 200
删除文件
POST /m-api/1/file/del HTTP/1.1
请求参数
名称 | 必需 | 说明 |
---|---|---|
token | 是 | access token |
mount_id | 是 | 库空间ID |
fullpath | 是 | 文件完整路径 |
sign | 是 | 签名 |
返回结果
正常返回 HTTP 200
添加文件到收藏夹
POST /m-api/1/favorites/add_file HTTP/1.1
请求参数
名称 | 必需 | 说明 |
---|---|---|
token | 是 | access token |
mount_id | 是 | 库空间ID |
fullpath | 是 | 文件完整路径 |
fav_id | 是 | 收藏夹ID, 固定值-1 表示默认收藏夹 |
sign | 是 | 签名 |
返回结果
正常返回 HTTP 200
取消收藏
POST /m-api/1/favorites/del_file HTTP/1.1
请求参数
名称 | 必需 | 说明 |
---|---|---|
token | 是 | access token |
mount_id | 是 | 库空间ID |
fullpath | 是 | 文件完整路径 |
fav_id | 是 | 收藏夹ID, 固定值-1 表示默认收藏夹 |
sign | 是 | 签名 |
返回结果
正常返回 HTTP 200
收藏夹文件列表
GET /m-api/1/favorites/get_files
请求参数
名称 | 必需 | 说明 |
---|---|---|
token | 是 | access token |
fav_id | 是 | 收藏夹ID, 固定值-1 表示默认收藏夹 |
start | 否 | 开始位置, 默认0 |
size | 否 | 获取数量, 默认100 |
sign | 是 | 签名 |
返回格式
json
返回结果
{
"list": [
{
"mount_id": 1,
"hash": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"dir": 1,
"fullpath": "公开资料",
"filename": "公开资料",
"filehash": "",
"filesize": 0,
"create_member_id": "1",
"create_member_name": "我",
"create_dateline": 1452569732,
"last_member_id": "1",
"last_member_name": "我",
"last_dateline": 1452569732
},
{
"hash": "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb",
"mount_id": 1,
"dir": 0,
"fullpath": "Word文档.doc",
"filename": "Word文档.doc",
"filehash": "ffffffffffffffffffffffffffffffffffffffff",
"filesize": 204800,
"create_member_id": "1",
"create_member_name": "我",
"create_dateline": 1442563789,
"last_member_id": "1",
"last_member_name": "我",
"last_dateline": 1449505954
},
......
]
}
字段 | 类型 | 说明 |
---|---|---|
hash | string | 文件唯一ID |
mount_id | int | 库空间ID |
dir | int | 是否文件夹 |
fullpath | string | 文件完整路径 |
filename | string | 文件名称 |
filehash | string | 文件内容checksum, 文件夹为空字符串 |
filesize | bigint | 文件大小 |
create_member_id | string | 文件创建人ID |
create_member_name | string | 文件创建人 |
create_dateline | int | 文件创建时间, unix时间戳, 单位秒 |
last_member_id | string | 文件最后修改人ID |
last_member_name | string | 文件最后修改人 |
last_dateline | int | 文件最后修改时间, unix时间戳, 单位秒 |
文件搜索
GET /m-api/2/file/search
请求参数
名称 | 必需 | 说明 |
---|---|---|
token | 是 | access token |
keyword | 是 | 搜索关键字 |
mount_id | 是 | 库空间ID, 0 表示全局搜索 |
fullpath | 否 | 搜索指定文件夹下的文件, 包括所有下层文件 |
scope | 否 | 搜索范围, 内容为JSON, 传参时需转为字符串, ["filename","tag","content"] , 其中filename 表示搜索文件名, tag 搜索标签, content 搜索文档内容, 可进行组合, 如["tag","content"] 表示搜索标签和文档内容, 默认值为["filename","tag"] |
ext | 否 | 搜索指定类型的文件/文件夹, 内容为JSON, 传参时需转为字符串, ["dir", "file", "docx", "jpg", ...] , dir 表示只搜索文件夹, file 表示只搜索文件, 其他扩展名表示指定搜索文件的扩展名 |
start | 否 | 开始位置, 默认0 |
size | 否 | 获取数量, 默认100 |
sign | 是 | 签名 |
返回结果
同 文件列表