全量同步 - walkFile
功能介绍
全量同步
授权信息
当前API调用无需身份策略权限。
URI
POST /koodrive/ose/v1/file/walkFile
请求参数
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
Authorization |
是 |
String |
该字段存储的是Access Token。调用KooDrive的API使用Token认证,拥有Token就代表拥有某种权限,在调用API的时候将Token加到请求消息头中,从而通过身份认证,获得操作API的权限。Access Token的获取请参考对应的开发手册,格式参考:Bearer+{access_token} |
|
X-User-Id |
是 |
String |
用户id,用于app鉴权 |
|
X-Date |
是 |
String |
日期,用于app鉴权 |
|
Host |
是 |
String |
地址,用于app鉴权 |
|
X-Traceid |
否 |
String |
消息日志跟踪标识(必须58位) |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
pageInfo |
否 |
PageInfo object |
分页信息 注:pageSize增加至1000 |
|
sortInfo |
否 |
FileSortInfo object |
排序信息 支持按文件名称、文件大小、创建时间、修改时间排序 |
|
containerId |
是 |
String |
空间ID |
|
parentFileId |
是 |
String |
父目录ID 根目录填写root 注:父目录ID为遍历的根目录ID,一次遍历过程的所有请求的parentFileId都相同。 |
|
type |
否 |
String |
文件类型 详见枚举类型FileType 缺省默认返回所有类型文件 |
|
includeHidden |
否 |
Boolean |
是否包含隐藏文件 true:返回所有文件 false:仅返回非隐藏文件 缺省默认为false |
响应参数
状态码:200
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
files |
Array of File objects |
文件信息列表 |
|
nextCursor |
String |
下一页起始游标,最后一页值为空 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
category |
String |
类型 |
|
id |
String |
文件id |
|
fileName |
String |
文件名,最长250个字符 |
|
fileType |
String |
文件类型,外部输入 |
|
mimeType |
String |
内容类型 |
|
description |
String |
文件描述。字符串长度不超过512,不能包括emoji和非法字符 |
|
favorite |
Boolean |
文件是否被收藏 |
|
recycled |
Boolean |
文件是否被放入回收站 |
|
directlyRecycled |
Boolean |
文件是否被直接被放入回收站(随着文件夹删除为false,直接删除为true) |
|
recyclingUser |
User object |
删除用户 |
|
recycledTime |
String |
放入回收站的时间 |
|
parentFolder |
Array of strings |
父目录ID列表,注意:当前只取第一个父目录Id |
|
properties |
Map<String,String> |
文件公共自定义属性。key-value个数不能超过30个;单个key-value长度不超过124字符 |
|
appSettings |
Map<String,String> |
应用自定义属性。key-value个数不能超过30个;单个key-value长度不超过124字符 |
|
containers |
Array of strings |
空间标识 |
|
version |
Integer |
版本号 |
|
createdTime |
String |
文件创建时间 |
|
editedTime |
String |
文件修改时间 |
|
editedByMeTime |
String |
本人修改文件时间 |
|
editedByMe |
Boolean |
是否是我修改文件 |
|
sharedWithMeTime |
String |
共享给我的时间 |
|
sharer |
User object |
分享者 |
|
owners |
Array of User objects |
拥有者 |
|
lastEditor |
User object |
最后编辑者 |
|
hasShared |
Boolean |
是否共享 |
|
ownedByMe |
Boolean |
是否是我上传 |
|
capabilities |
Capabilities object |
能力 |
|
viewersHasCopyContentPermission |
Boolean |
浏览者是否可以复制内容 |
|
writerHasCopyPermission |
Boolean |
复制是否需要writer权限 |
|
writersHasSharePermission |
Boolean |
writer能否分享 |
|
originalFilename |
String |
原始文件名,最长250个字符。不能包括'<>|:"*?/'和emoji,不能等于'..'、'.'、'' |
|
fullFileSuffix |
String |
完整的文件后缀,取name第一个.后的字符串 |
|
fileSuffix |
String |
文件后缀,fullFileExtension最后一个字符串 |
|
size |
Integer |
文件大小 |
|
pictureMetadata |
PictureMetadata object |
图片元数据 |
|
videoMetadata |
VideoMetadata object |
视频元数据 |
|
audioMetadata |
AudioMetadata object |
音频元数据 |
|
sha256 |
String |
文件的sha256 |
|
lastHistoryVersionId |
String |
最新的历史记录版本ID |
|
attachments |
Array of Attachment objects |
附件(用途,附件),只有风控服务appid返回 |
|
iconDownloadLink |
String |
图标链接 |
|
existThumbnail |
Boolean |
是否有缩略图 |
|
privateKey |
String |
特殊文件夹标识,使用规则如下:
|
|
signedDownloadLink |
String |
FileProxy签名的下载链接,在线播放使用 |
|
downloadLinks |
Array of DownloadLink objects |
FileProxy文件列表下载地址 |
|
localPath |
String |
变更时的父目录顶层id路径(取前10层),变更记录和文件查询接口返回 |
|
sortName |
String |
转换fileName后的排序名称 |
|
userProperties |
PrivateProperties object |
用户属性 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
category |
String |
类型,drive#user |
|
userId |
String |
华为用户ID |
|
displayName |
String |
用户显示名 |
|
me |
Boolean |
是否是我 |
|
permissionId |
String |
权限id |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
addChildNodePermission |
Boolean |
是否可以增加子目录/文件 |
|
writerHasChangeCopyPermission |
Boolean |
change copy是否需要write权限 |
|
commentPermission |
Boolean |
是否可以评论 |
|
copyPermission |
Boolean |
是否可以复制 |
|
deletePermission |
Boolean |
是否可以删除 |
|
downloadPermission |
Boolean |
是否可以下载内容 |
|
editPermission |
Boolean |
是否可以编辑 |
|
listChildNodePermission |
Boolean |
是否可以list子目录/文件 |
|
editContentPermission |
Boolean |
是否可以修改内容 |
|
readHistoryVersionPermission |
Boolean |
是否可以读取副本 |
|
removeChildNodePermission |
Boolean |
是否可以移动子目录 |
|
renameFilePermission |
Boolean |
是否可以重命名 |
|
shareFilePermission |
Boolean |
是否可以共享 |
|
recyclePermission |
Boolean |
是否可以移动到回收站 |
|
unrecyclePermission |
Boolean |
是否可以撤回移动子文件到回收站 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
width |
Integer |
照片宽度 |
|
height |
Integer |
照片高度 |
|
rotation |
Integer |
照片旋转角度,暂不提供 |
|
location |
Location object |
定位信息 |
|
exifTime |
String |
照片的时间,EXIF DateTime |
|
cameraMaker |
String |
照相机制造商 |
|
cameraModel |
String |
照相机型号 |
|
exposureTime |
Float |
曝光长度,单位秒 |
|
aperture |
Float |
光圈,f-number |
|
flashUsed |
Boolean |
是否使用闪光灯 |
|
focalLength |
Float |
焦距,毫米 |
|
isoSpeed |
Integer |
ISO速度 |
|
meteringMode |
String |
测距模式 |
|
sensor |
String |
感光类型 |
|
exposureMode |
String |
曝光模式 |
|
colorSpace |
String |
色彩空间 |
|
whiteBalance |
String |
白平衡模式 |
|
exposureBias |
Float |
曝光偏差,APEX值 |
|
maxApertureValue |
Float |
最大光圈值,APEX value |
|
subjectDistance |
Integer |
对象距离,单位米,暂不提供 |
|
lens |
String |
镜头 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
width |
Integer |
宽度 |
|
height |
Integer |
高度 |
|
durationTime |
Integer |
时长,单位毫秒 |
|
position |
String |
经纬度信息,格式为"x":"111","y":"222","z":"2222" |
|
rotation |
Integer |
旋转角度,取值1-8 |
|
format |
String |
视频编码格式,例如:H264、H265、vp8/vp9、ogg、mpeg-4 avc |
|
dynamicRange |
String |
SDR,HDR |
|
snapshotTime |
String |
拍摄时间 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
durationTime |
Integer |
时长,单位毫秒 |
|
sampleRate |
String |
采样率,例如:16000、48000 |
|
encoding |
String |
音频编码格式,例如:pcm、aac、amr、amrwb |
|
codeRate |
Number |
码率单位kb/s,例如:12.8 |
|
rateModel |
String |
码率模式,例如:CBR |
|
languageCode |
String |
语言国家码,例如:zh、en |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
usage |
String |
用途默认:'content'-实体内容、'thumbnail'-缩略图,业务可以扩展该字段 |
|
assetId |
String |
Asset ID |
|
length |
Long |
文件大小 |
|
versionId |
String |
Asset版本ID |
|
mimeType |
String |
MIME类型 |
|
hash |
String |
Asset关联的资源的hash |
|
sha256 |
String |
Asset关联的资源的sha256 |
|
createdTime |
String |
数据创建时间 |
|
modifiedTime |
String |
数据最后修改时间 |
|
attributes |
Map<String,Object> |
类型属性 |
|
asset |
Asset object |
资产 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
id |
String |
Asset ID |
|
versionId |
String |
Asset版本ID |
|
version |
Long |
版本号 |
|
mimeType |
String |
MIME type |
|
keepPolicy |
Integer |
历史版本的保存策略
|
|
state |
Integer |
数据的状态
|
|
createdTime |
String |
数据创建时间 |
|
modifiedTime |
String |
数据最后修改时间 |
|
lastModifyingUser |
String |
最后一次修改的用户UPID |
|
resource |
Resource object |
资源 |
|
cipher |
Cipher object |
密码器 |
|
attributes |
Map<String,Object> |
类型属性(Key部分使用字母开头的字母加数字组合,Value部分禁止使用emoji字符,不限单个属性长度,限制总大小为16K以内),存在字段如下:
|
|
properties |
Map<String,String> |
扩展属性 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
id |
String |
文件资源ID |
|
hash |
String |
文件资源的hash |
|
length |
Long |
文件资源的长度 |
|
sha256 |
String |
文件的sha256(用于完整性校验) |
|
type |
Integer |
资源类型
|
|
state |
Integer |
数据的状态
|
|
sliceSize |
Long |
分片大小 |
|
hfek |
String |
加密文件的fek的hash,用于type={0} |
|
iv |
String |
加密文件的IV,适用于type={0} |
|
createdTime |
String |
数据创建时间 |
|
modifiedTime |
String |
数据最后修改时间 |
|
objects |
Array of SliceObject objects |
分片对象,适用于type={0,3} |
|
attributes |
Map<String,Object> |
类型属性 |
|
properties |
Map<String,String> |
扩展属性 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
id |
String |
分片ID |
|
number |
Integer |
分片序号,从0开始计,不适用于type={12} |
|
start |
Long |
分片的起始位置,不适用于type={12} |
|
sha256 |
String |
分片的sha256(如果是加密,是指密文的sha256) |
|
length |
Long |
分片的长度(如果是加密,则是密文长度) |
|
bucket |
String |
OBS桶信息 |
|
createdTime |
String |
数据创建时间 |
|
modifiedTime |
String |
数据最后修改时间 |
|
uploadUrl |
EndpointURL object |
上传url |
|
downloadUrl |
EndpointURL object |
下载url |
|
uploadId |
String |
分段上传ID,适用于type={12}且uploadMode=multipart |
|
attributes |
Map<String,Object> |
类型属性 |
|
properties |
Map<String,String> |
扩展属性 |
|
images |
Array of Images objects |
缩略图 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
url |
String |
链接 |
|
method |
String |
请求方法 |
|
headers |
Map<String,String> |
请求头 |
|
forms |
Map<String,String> |
表单参数,适用于type={12}且uploadMode=post |
|
partId |
String |
分段参数,适用于type={12}且uploadMode=multipart |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
algorithm |
String |
加密算法 |
|
hfek |
String |
加密文件的fek的hash,用于type={0,4} |
|
iv |
String |
加密文件的IV,适用于type={0,4} |
|
dataType |
Integer |
数据类型
|
|
keychains |
Array of Keychain objects |
钥匙串 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
id |
String |
key的UUID |
|
type |
Integer |
密钥类型
|
|
algorithm |
String |
加密算法 |
|
ekey |
String |
加密后的key |
请求示例
全量同步请求示例
POST /koodrive/ose/v1/file/walkFile
Authorization:Bearer+10f88*********4791e9ff
{
"pageInfo": {
"pageSize": 1,
"pageCursor": ""
},
"sortInfo": {
"sortType": 1,
"sortDirection": 2
},
"containerId": "IAAFvqhbjJn5lgncA1649204212623716096",
"parentFileId": "FrqKiZrmCqA7_tupuT99JkbhBhBjcAN8O"
}
响应示例
状态码:200
遍历文件响应
{
"files" : [ {
"id" : "Fj96QCEuQ1n7BwjfYZMdBM5k9tnYuEqF-",
"fileName" : "456",
"mimeType" : "application/vnd.huawei-apps.folder",
"fileSuffix" : "",
"recycled" : false,
"hidden" : false,
"parentFolder" : [ "FrqKiZrmCqA7_tupuT99JkbhBhBjcAN8O" ],
"containers" : [ "IAAFvqhbjJn5lgncA1649204212623716096" ],
"properties" : {
"smartFolderAttr" : "null",
"auditResult" : "{\"auditDetail\":\"{}\",\"auditLevel\":10,\"auditResult\":1}"
},
"owners" : [ {
"category" : "drive#user",
"me" : true,
"permissionId" : "1649204212858517248",
"userId" : "YzkzN2ZmOTVlZWI0NDQ5NGE1YTk2N2UyMWQxODUyYWUtMTY0OTIwMTQxNjIyMjQzOTI5Nw"
} ],
"lastEditor" : {
"category" : "drive#user",
"me" : true,
"permissionId" : "1649204212858517248",
"userId" : "YzkzN2ZmOTVlZWI0NDQ5NGE1YTk2N2UyMWQxODUyYWUtMTY0OTIwMTQxNjIyMjQzOTI5Nw"
},
"fileType" : "10",
"createdTime" : "2025-08-26T11:31:31.656Z",
"editedTime" : "2025-08-26T11:31:31.656Z",
"favorite" : false,
"userCapabilities" : {
"addChildNodePermission" : true,
"copyPermission" : true,
"deletePermission" : true,
"downloadPermission" : true,
"editPermission" : true,
"listChildNodePermission" : true,
"removeChildNodePermission" : true,
"renameFilePermission" : true,
"shareFilePermission" : true,
"uploadPermission" : true,
"viewPermission" : true
},
"creatingUser" : "YzkzN2ZmOTVlZWI0NDQ5NGE1YTk2N2UyMWQxODUyYWUtMTY0OTIwMTQxNjIyMjQzOTI5Nw"
} ],
"nextCursor" : "(WzEsIkZycUtpWnJtQ3FBN190dXB1VDk5SmtiaEJoQmpjQU44TyIsIjJvcTEtRkowV0YzME9MT2ItLSIsIkZqOTZRQ0V1UTFuN0J3amZZWk1kQk01azl0bll1RXFGLSJdWyIxNzY1MzE4MjI3NDYzODY3NTIwIiw1MDAwLDEwMCwwLDAsMSwxXQ==)",
"code" : 0,
"msg" : "success"
}
状态码
|
状态码 |
描述 |
|---|---|
|
200 |
遍历文件响应 |