更新时间:2025-10-21 GMT+08:00

全量同步 - walkFile

功能介绍

全量同步

授权信息

当前API调用无需身份策略权限。

URI

POST /koodrive/ose/v1/file/walkFile

请求参数

表1 请求Header参数

参数

是否必选

参数类型

描述

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位)

表2 请求Body参数

参数

是否必选

参数类型

描述

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

表3 PageInfo

参数

是否必选

参数类型

描述

pageSize

Integer

每页文件数量,默认100

pageCursor

String

分页起始游标

表4 FileSortInfo

参数

是否必选

参数类型

描述

sortType

Integer

排序字段

  • 1:文件名排序

  • 2:文件大小排序

  • 3:创建时间排序

  • 4:修改时间排序

  • 5:回收时间(只针对于回收文件)

  • 6:文件格式排序

sortDirection

Integer

排序顺序

  • 1:升序

  • 2:降序

响应参数

状态码:200

表5 响应Body参数

参数

参数类型

描述

files

Array of File objects

文件信息列表

nextCursor

String

下一页起始游标,最后一页值为空

表6 File

参数

参数类型

描述

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

特殊文件夹标识,使用规则如下:

  • 命名不得使用_default

  • 仅允许在空间的根目录下创建时指定

  • 仅允许在创建文件夹时指定

  • 同一空间下不得重复

signedDownloadLink

String

FileProxy签名的下载链接,在线播放使用

downloadLinks

Array of DownloadLink objects

FileProxy文件列表下载地址

localPath

String

变更时的父目录顶层id路径(取前10层),变更记录和文件查询接口返回

sortName

String

转换fileName后的排序名称

userProperties

PrivateProperties object

用户属性

表7 User

参数

参数类型

描述

category

String

类型,drive#user

userId

String

华为用户ID

displayName

String

用户显示名

me

Boolean

是否是我

permissionId

String

权限id

表8 Capabilities

参数

参数类型

描述

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

是否可以撤回移动子文件到回收站

表9 PictureMetadata

参数

参数类型

描述

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

镜头

表10 Location

参数

参数类型

描述

latitude

Double

维度

longitude

Double

经度

altitude

Double

高度

表11 VideoMetadata

参数

参数类型

描述

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

拍摄时间

表12 AudioMetadata

参数

参数类型

描述

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

表13 Attachment

参数

参数类型

描述

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

资产

表14 Asset

参数

参数类型

描述

id

String

Asset ID

versionId

String

Asset版本ID

version

Long

版本号

mimeType

String

MIME type

keepPolicy

Integer

历史版本的保存策略

  • 0:自动清理,保留两个版本,第三个版本时淘汰最早的(目的是为了防止并发场景下获取失败)

  • 1:永久保存

state

Integer

数据的状态

  • 0:可用

  • 1:不可用

  • 2:临时

  • 3:留存(不可飞速)

  • 4:待割接

createdTime

String

数据创建时间

modifiedTime

String

数据最后修改时间

lastModifyingUser

String

最后一次修改的用户UPID

resource

Resource object

资源

cipher

Cipher object

密码器

attributes

Map<String,Object>

类型属性(Key部分使用字母开头的字母加数字组合,Value部分禁止使用emoji字符,不限单个属性长度,限制总大小为16K以内),存在字段如下:

  • pictureMetadata:图片属性数据,参见PictureMetadata定义

  • videoMetadata:视频属性数据,参见VideoMetadata定义

  • audioMetadata:音频属性数据,参见AudioMetadata定义

  • contentDisposition:下载附件未指定response-content-disposition,自动使用该字段填充(resource.type=12生效)

properties

Map<String,String>

扩展属性

表15 Resource

参数

参数类型

描述

id

String

文件资源ID

hash

String

文件资源的hash

length

Long

文件资源的长度

sha256

String

文件的sha256(用于完整性校验)

type

Integer

资源类型

  • 0:密文分片文件

  • 3:明文分片文件

  • 12:明文单片文件

state

Integer

数据的状态

  • 0:可用

  • 1:不可用

  • 2:临时

  • 3:留存(不可飞速)

  • 4:待割接

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>

扩展属性

表16 SliceObject

参数

参数类型

描述

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

缩略图

表17 EndpointURL

参数

参数类型

描述

url

String

链接

method

String

请求方法

headers

Map<String,String>

请求头

forms

Map<String,String>

表单参数,适用于type={12}且uploadMode=post

partId

String

分段参数,适用于type={12}且uploadMode=multipart

表18 Images

参数

参数类型

描述

process

String

文件资源名称

downloadUrl

EndpointURLMetadata object

文件上传或下载的URL结构

表19 EndpointURLMetadata

参数

参数类型

描述

url

String

链接

method

String

请求方法

表20 Cipher

参数

参数类型

描述

algorithm

String

加密算法

hfek

String

加密文件的fek的hash,用于type={0,4}

iv

String

加密文件的IV,适用于type={0,4}

dataType

Integer

数据类型

  • 11:同步盘

keychains

Array of Keychain objects

钥匙串

表21 Keychain

参数

参数类型

描述

id

String

key的UUID

type

Integer

密钥类型

  • 1:efek

  • 2:zfek

  • 3:sfek

algorithm

String

加密算法

ekey

String

加密后的key

表23 PrivateProperties

参数

参数类型

描述

attributes

Map<String,Object>

类型属性(不限单个属性长度,限制总大小为16K以内)

properties

Map<String,String>

扩展属性(不限单个属性长度,限制总大小为16K以内)

请求示例

全量同步请求示例

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

遍历文件响应