全量同步 - 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 | 类型,drive#file |
| 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能否share |
| 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 | URL |
| method | String | http method |
| headers | Map<String,String> | http headers |
| 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 | 遍历文件响应 |