列举变更记录 - listChanges
功能介绍
列举变更记录
授权信息
当前API调用无需身份策略权限。
URI
POST /koodrive/ose/v1/syncDir/listChange
请求参数
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
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位) |
|
参数 |
是否必选 |
参数类型 |
描述 |
|---|---|---|---|
|
container |
是 |
String |
空间ID |
|
syncDirId |
是 |
String |
同步盘ID |
|
deviceId |
是 |
String |
设备ID |
|
cursor |
是 |
String |
起始游标 |
|
pageSize |
是 |
Integer |
每页显示数量 取值范围:[1, 100] 默认为10 |
响应参数
状态码:200
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
fileChangeList |
Array of FileChangeInfo objects |
文件变更记录列表 |
|
nextCursor |
String |
分页查询的下一个cursor |
|
hasMore |
Boolean |
是否还有更多变更信息 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
policy |
String |
云空间地址:固定值 aggregate 文件变更信息生成策略,目前仅支持:full、latest、aggregate。 full:表示该文件全量变更信息,多次变更会返回多条变更信息; latest:表示文件变更后的最新状态快照,多次变更仅返回最终文件状态信息; aggregate:表示按变更类型聚合后的变更信息,多次变更时按变更类型聚合后返回每一类变更信息; |
|
changeType |
String |
变更类型 |
|
fileInfo |
File object |
云空间文件元数据 |
|
deviceId |
String |
发起变更操作的设备ID |
|
extInfo |
FileChangeExtInfo object |
扩展信息 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
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 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
usage |
String |
用途默认:'content'-实体内容、'thumbnail'-缩略图,业务可以扩展该字段 |
|
downloadLink |
String |
附件下载地址 |
|
version |
Integer |
附件版本号 |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
attributes |
Map<String,Object> |
类型属性(不限单个属性长度,限制总大小为16K以内) |
|
properties |
Map<String,String> |
扩展属性(不限单个属性长度,限制总大小为16K以内) |
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
moveType |
Integer |
文件移动类型 1: 同步目录内移动 2: 移出同步目录 3: 移入同步目录 注 : 仅 当changeType=5 移动操作时返回 |
|
srcParentFileId |
String |
文件变更前的父目录 ID 注: 仅当changeType=4、5、6 时,即文件彻底删除、移动、移入回收站操作时返回 |
|
idPath |
String |
变更后的文件 ID 全路径注 : 仅 当 changeType=4、5、6 时,即文件彻底删除、移动、移入回收站操作时返回 |
|
localOperatedAt |
Long |
文件本地操作时间,毫秒时间戳 |
请求示例
列举变更记录示例
POST /koodrive/ose/v1/syncDir/listChange
{
"container" : "K*****",
"syncDirId" : "K*****",
"deviceId" : "K*****",
"cursor" : "0",
"pageSize" : "10"
}
响应示例
状态码:200
列举变更记录响应
{
"fileChangeList" : [ {
"policy" : "full",
"changeType" : "add",
"fileInfo" : {
"id" : "FmZxJyIQz5B1DtzgjM4FCuI94CpzrMZMd",
"fileName" : "test.txt",
"favorite" : false,
"mimeType" : "text/plain",
"fileSuffix" : "txt",
"recycled" : false,
"hidden" : false,
"size" : 4,
"directlyRecycled" : false,
"parentFolder" : [ "FhrBCdI6kLcSzy5hGs7FPGZBUASDhplrE" ],
"containers" : [ "IAAE0gxbkQ1RvAncA1649517393090925824" ],
"properties" : {
"localCreatedAt" : "",
"localUpdatedAt" : ""
},
"sha256" : "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"attachments" : [ {
"assetId" : "1765316142659898496",
"versionId" : "1765316142659898497",
"attributes" : {
"fileName" : "test.txt",
"localCreatedAt" : "",
"createdBy" : "c937ff95eeb44494a5a967e21d1852ae",
"resource" : {
"id" : "1762995278538867328",
"object" : {
"bucket" : "obs-koodrive-test-2",
"objectId" : "2c9c760947e3454c8693a1718b5c2081086"
}
},
"localUpdatedAt" : ""
},
"hash" : "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"length" : 4,
"mimeType" : "text/plain",
"usage" : "content",
"sha256" : "9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08",
"createdTime" : "2025-09-01T08:08:03.357Z",
"modifiedTime" : "2025-09-01T08:08:03.357Z"
} ],
"owners" : [ {
"category" : "drive#user",
"me" : true,
"permissionId" : "1649517393443190528",
"userId" : "YzkzN2ZmOTVlZWI0NDQ5NGE1YTk2N2UyMWQxODUyYWUtMTY0OTUxNzI5MTIwMjg5MzA1Nw"
} ],
"lastEditor" : {
"category" : "drive#user",
"me" : true,
"permissionId" : "1649517393443190528",
"userId" : "YzkzN2ZmOTVlZWI0NDQ5NGE1YTk2N2UyMWQxODUyYWUtMTY0OTUxNzI5MTIwMjg5MzA1Nw"
},
"fileType" : "26",
"createdTime" : "2025-09-01T08:08:03.092Z",
"editedTime" : "2025-09-01T08:08:03.847Z",
"userProperties" : {
"properties" : {
"hidden" : "false"
}
},
"creatingUser" : "YzkzN2ZmOTVlZWI0NDQ5NGE1YTk2N2UyMWQxODUyYWUtMTY0OTUxNzI5MTIwMjg5MzA1Nw"
},
"extInfo" : {
"idPath" : "FmZxJyIQz5B1DtzgjM4FCuI94CpzrMZMd"
}
} ],
"hasMore" : false,
"code" : 0,
"msg" : "成功"
}
状态码
|
状态码 |
描述 |
|---|---|
|
200 |
列举变更记录响应 |