| 承载协议 | HTTP GET |
|---|---|
| 接口方向 | 开发者服务器->华为云空间服务器 |
| 接口URL | https://driveapis.cloud.huawei.com.cn/drive/v1/files |
| 数据格式 | 请求消息:Content-Type: application/json 响应消息:Content-Type: application/json |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| queryParam | 否 | string | 根据属性过滤文件。具体使用见公共说明。 |
| orderBy | 否 | string | 逗号分隔的列表,可选值为createdTime, folder, editedTime, fileName,recycleTime 和size。每个键默认情况下升序排列,可以使用desc反转。例如orderBy=folder,editedTime desc,fileName。注意如果超过10万文件,将忽略orderBy。 |
| pageSize | 否 | integer | 每页返回的个数,默认是100,可接受值1-100。注意在到达最后的列表之前,实际有可能返回部分或者空结果。 1,不保证每次返回的结果个数是传入的pageSize,实际有可能返回部分或者空。 2,返回nextCursor存在就表示数据还未全部返回。 3,如果想取固定大小(比如5条)的数据 可以传入上次返回的cursor多次调用file.list接口直到获取5条数据或者cursor为空 |
| cursor | 否 | string | 当前页游标,由前一个响应的nextCursor获取。 |
| containers | 否 | string | 查询范围,可选值drive和applicationData,或两者的组合,以逗号连接。默认是drive。 |
| fields | 否 | string | 采用[Partial-response格式],具体使用见公共说明。 |
| form | 否 | string | 媒体格式。 |
| prettyPrint | 否 | boolean | 是否以美观格式输出。 |
| quotaId | 否 | string | 用户标识,小于40个字符。用于限制单个用户的API访问数量。 |
| callback | 否 | string | JSONP的callback函数。 |
Request Header
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| Authorization | 是 | string | 用户鉴权信息 AccessToken(即AT) |
| x-hw-trace-id | 否 | string | 业务跟踪id。 |
| x-hw-app-id | 否 | string | 应用的appid。 |
| version | 否 | string | SDK版本。 |
| x-hw-terminal | 否 | string | 终端型号。 |
| x-hw-os | 否 | string | 终端操作系统类型。 |
| unionID | 否 | string | 用户的unionID。 |
| User-Agent | 否 | string | 应用版本号/appid。 |
| x-hw-deviceUUID | 否 | string | 设备UUID。 |
| x-hw-deviceUDID | 否 | string | 设备UDID。 |
| x-hw-appPackageName | 否 | string | 应用包名。 |
| x-hw-network | 否 | string | 网络类型,[WiFi, 2G, 3G, 4G, 5G, wire]。 |
Request Body
无
GET https://driveapis.cloud.huawei.com.cn/drive/v1/files?fields=* HTTP/1.1 Accept: application/json Cache-Control: no-cache Authorization: Bearer CF3NTYZSs7MRmxWyj8ssonQQxDgSPAjnDvrf+91NrpN22LdUrMA30A5Kzz0mf55sWao7e7VeLrmjQ0z2OmwPWlt3S00/L1BJppbTFhIgWb74ZBK8CFImUA==
状态码为200时:
| 参数 | 参数类型 | 描述 |
|---|---|---|
| category | string | 类型,固定为drive#fileList。 |
| nextCursor | string | 分页游标,如果不存在,代表已返回最后一个。 |
| files[] | list | 文件列表。 |
| files.category | string | 类型,固定为drive#file。 |
| files.id | string | 文件id。 |
| files.fileName | string | 文件名。 |
| files.mimeType | string | 文件类型。 |
| files.description | string | 文件描述。 |
| files.favorite | boolean | 文件是否被收藏。 |
| files.recycled | boolean | 文件是否被放入回收站。 |
| files.directlyRecycled | boolean | 文件是否被直接被放入回收站。 |
| files.recyclingUser.category | string | 类型,drive#user。 |
| files.recyclingUser.displayName | string | 用户显示名。 |
| files.recyclingUser.profilePhotoLink | string | 用户头像链接(默认不返回)。 |
| files.recyclingUser.me | boolean | 是否是我。 |
| files.recyclingUser.permissionId | string | 权限id。 |
| files.recyclingUser.userAccount | string | 帐号名称(默认不返回)。 |
| files.recycledTime | string | 放入回收站的时间。 |
| files.parentFolder[] | string | 父目录。 |
| files.properties | string | 文件公共自定义属性。 |
| files.appSettings | string | 应用自定义属性。 |
| files.containers[] | string | 空间: drive,applicationData。 |
| files.version | integer | 版本号。 |
| files.contentDownloadLink | string | 文档下载链接。 |
| files.iconDownloadLink | string | 图标链接。 |
| files.existThumbnail | boolean | 是否有缩略图。 |
| files.thumbnailDownloadLink | string | 大缩略图链接。 |
| files.smallThumbnailDownloadLink | string | 小缩略图链接。 |
| files.thumbnailVersion | integer | 缩略图版本号。 |
| files.onLineViewLink | string | 在线浏览链接。 |
| files.createdTime | string | 文件创建时间。 |
| files.editedTime | string | 文件修改时间。 |
| files.editedByMeTime | string | 我修改文件的时间。 |
| files.editedByMe | boolean | 是否是我修改文件。 |
| files.sharedWithMeTime | string | 共享给我的时间。 |
| files.sharer.category | string | 类型,固定为drive#user。 |
| files.sharer.displayName | string | 用户显示名。 |
| files.sharer.profilePhotoLink | string | 用户头像链接(默认不返回)。 |
| files.sharer.me | boolean | 是否是我。 |
| files.sharer.permissionId | string | 权限id。 |
| files.sharer.userAccount | string | 帐号名称(默认不返回)。 |
| files.owners.category | string | 类型,固定为drive#user。 |
| files.owners.displayName | string | 用户显示名。 |
| files.owners.profilePhotoLink | string | 用户头像链接(默认不返回)。 |
| files.owners.me | boolean | 是否是我。 |
| files.owners.permissionId | string | 权限id。 |
| files.owners.userAccount | string | 帐号名称(默认不返回)。 |
| files.lastEditor.category | string | 类型,固定为drive#user。 |
| files.lastEditor.displayName | string | 用户显示名。 |
| files.lastEditor.profilePhotoLink | string | 用户头像链接(默认不返回)。 |
| files.lastEditor.me | boolean | 是否是我。 |
| files.lastEditor.permissionId | string | 权限id。 |
| files.lastEditor.userAccount | string | 帐号名称(默认不返回)。 |
| files.hasShared | boolean | 是否共享。 |
| files.ownedByMe | boolean | 是否是我用。 |
| files.capabilities.addChildNodePermission | boolean | 是否可以增加子目录/文件。 |
| files.capabilities.writerHasChangeCopyPermission | boolean | change copy是否需要write权限。 |
| files.capabilities.commentPermission | boolean | 是否可以评论。 |
| files.capabilities.copyPermission | boolean | 是否可以拷贝。 |
| files.capabilities.deletePermission | boolean | 是否可以删除。 |
| files.capabilities.downloadPermission | boolean | 是否可以下载内容。 |
| files.capabilities.editPermission | boolean | 是否可以编辑。 |
| files.capabilities.listChildNodePermission | boolean | 是否可以list子目录/文件。 |
| files.capabilities.editContentPermission | boolean | 是否可以修改内容。 |
| files.capabilities.readHistoryVersionPermission | boolean | 是否可以读取副本。 |
| files.capabilities.removeChildNodePermission | boolean | 是否可以移动子目录。 |
| files.capabilities.renameFilePermission | boolean | 是否可以重命名。 |
| files.capabilities.shareFilePermission | boolean | 是否可以共享。 |
| files.capabilities.recyclePermission | boolean | 是否可以移动到回收站。 |
| files.capabilities.unrecyclePermission | boolean | 是否可以撤回移动子文件到回收站。 |
| files.viewersHasCopyContentPermission | boolean | 浏览者是否可以拷贝内容。 |
| files.writerHasCopyPermission | boolean | 拷贝是否需要writer权限。 |
| files.writersHasSharePermission | boolean | writer能否share。 |
| files.permissions[] | list | permission列表。 |
| files.permissions.category | string | 类型,固定为drive#permission。 |
| files.permissions.id | string | 权限ID。 |
| files.permissions.type | string | 类型,[user,anyone]。 |
| files.permissions.role | string | 角色,[owner,writer,commenter,reader]。 |
| files.permissions.userAccount | string | 帐号名称。 |
| files.permissions.displayName | string | 名称。 |
| files.permissions.expirationTime | string | 失效时间。 |
| files.permissions.deleted | boolean | 文件权限是否已删除。 |
| files.permissions.canDiscoverFile | boolean | 是否允许被搜索(仅适用于anyone类型)。 |
| files.permissionIds | list | permissionId列表。 |
| files.originalFilename | string | 原始文件名。 |
| files.fullFileSuffix | string | 完整的文件后缀,取name第一个.后的字符串。 |
| files.fileSuffix | string | 文件后缀,fullFileSuffix最后一个字符串。 |
| files.size | integer | 文件大小。 |
| files.occupiedSpace | integer | 实际占用空间大小。 |
| files.pictureMetadata.width | integer | 照片宽度。 |
| files.pictureMetadata.height | integer | 照片高度。 |
| files.pictureMetadata.location.latitude | number | 纬度。 |
| files.pictureMetadata.location.longitude | number | 经度。 |
| files.pictureMetadata.location.altitude | number | 高度。 |
| files.pictureMetadata.exifTime | string | 照片的时间,EXIF DateTime。 |
| files.pictureMetadata.cameraMaker | string | 照相机制造商。 |
| files.pictureMetadata.cameraModel | string | 照相机型号。 |
| files.pictureMetadata.exposureTime | number | 曝光长度,单位秒。 |
| files.pictureMetadata.aperture | number | 光圈,f-number。 |
| files.pictureMetadata.flashUsed | boolean | 是否使用闪光灯。 |
| files.pictureMetadata.focalLength | number | 焦距,毫米。 |
| files.pictureMetadata.isoSpeed | integer | ISO速度。 |
| files.pictureMetadata.meteringMode | string | 测距模式。 |
| files.pictureMetadata.sensor | string | 感光类型。 |
| files.pictureMetadata.exposureMode | string | 曝光模式。 |
| files.pictureMetadata.colorSpace | string | 色彩空间。 |
| files.pictureMetadata.whiteBalance | string | 白平衡模式。 |
| files.pictureMetadata.exposureBias | number | 曝光偏差,APEX值。 |
| files.pictureMetadata.maxApertureValue | number | 最大光圈值,APEX value。 |
| files.pictureMetadata.lens | string | 镜头。 |
| files.videoMetadata.width | integer | 视频宽度。 |
| files.videoMetadata.height | integer | 视频高度。 |
| files.videoMetadata.durationTime | integer | 时长,毫秒。 |
| files.sha256 | string | 文件的sha256。 |
| files.lastHistoryVersionId | string | 最新的历史记录版本ID。 |
| files.contentVersion | string | 内容版本号。 |
HTTP/1.1 200 OK
{
"files":[
{
"fileName":"V7",
"editedByMe":true,
"description":"folder",
"owners":[
{
"permissionId":"239046878371512704",
"displayName":"*******3121@**3.com",
"me":true,
"category":"drive#user"
}
],
"hasShared":false,
"mimeType":"application/vnd.huawei-apps.folder",
"permissionIds":[
"233228122990838144"
],
"parentFolder":[
"Cp35dPknW1dpp1Ru3DdA19KRCyoO3VtRa"
],
"directlyRecycled":false,
"recycled":false,
"permissions":[
{
"role":"owner",
"deleted":false,
"id":"233228122990838144",
"category":"drive#permission",
"type":"user"
}
],
"editedByMeTime":"2020-06-04T06:10:47Z",
"createdTime":"2020-06-04T06:10:47Z",
"id":"BrVTO-YvKoTkeAFgwfYBJiq5oWUR1SqC5",
"capabilities":{
"downloadPermission":true,
"renameFilePermission":true,
"commentPermission":true,
"deletePermission":true,
"readHistoryVersionPermission":true,
"recyclePermission":true,
"addChildNodePermission":true,
"unrecyclePermission":true,
"writerHasChangeCopyPermission":false,
"copyPermission":false,
"editContentPermission":true,
"removeChildNodePermission":true,
"editPermission":true,
"listChildNodePermission":true,
"shareFilePermission":true
},
"ownedByMe":true,
"version":1,
"viewedByMe":false,
"writersHasSharePermission":false,
"iconDownloadLink":"https://event-dre.dbankcdn.com/filemanagerpic/20191114091142H5kH.png",
"editedTime":"2020-06-04T06:10:47Z",
"writerHasCopyPermission":false,
"lastEditor":{
"permissionId":"239046878371512704",
"displayName":"*******3121@**3.com",
"me":true,
"category":"drive#user"
},
"existThumbnail":false,
"containers":[
"drive"
],
"category":"drive#file",
"favorite":false
},
{
"fileName":"W23",
"editedByMe":true,
"description":"folder",
"owners":[
{
"permissionId":"239046878371512704",
"displayName":"*******3121@**3.com",
"me":true,
"category":"drive#user"
}
],
"hasShared":false,
"mimeType":"application/vnd.huawei-apps.folder",
"permissionIds":[
"233228122990838144"
],
"parentFolder":[
"Cp35dPknW1dpp1Ru3DdA19KRCyoO3VtRa"
],
"directlyRecycled":false,
"recycled":false,
"permissions":[
{
"role":"owner",
"deleted":false,
"id":"233228122990838144",
"category":"drive#permission",
"type":"user"
}
],
"editedByMeTime":"2020-06-12T03:05:13Z",
"createdTime":"2020-06-12T03:05:13Z",
"id":"BrEiNSYdd6sEe4bx0501O8K90GvR53etB",
"capabilities":{
"downloadPermission":true,
"renameFilePermission":true,
"commentPermission":true,
"deletePermission":true,
"readHistoryVersionPermission":true,
"recyclePermission":true,
"addChildNodePermission":true,
"unrecyclePermission":true,
"writerHasChangeCopyPermission":false,
"copyPermission":false,
"editContentPermission":true,
"removeChildNodePermission":true,
"editPermission":true,
"listChildNodePermission":true,
"shareFilePermission":true
},
"ownedByMe":true,
"version":1,
"viewedByMe":false,
"writersHasSharePermission":false,
"iconDownloadLink":"https://event-dre.dbankcdn.com/filemanagerpic/20191114091142H5kH.png",
"editedTime":"2020-06-12T03:05:13Z",
"writerHasCopyPermission":false,
"lastEditor":{
"permissionId":"239046878371512704",
"displayName":"*******3121@**3.com",
"me":true,
"category":"drive#user"
},
"existThumbnail":false,
"containers":[
"drive"
],
"category":"drive#file",
"favorite":false
}
],
"category":"drive#fileList"
} 错误码后4位为业务错误码,用于区分错误场景,其他业务错误码见状态码章节。
| 状态码 | 错误码 | 响应代码 | 描述 |
|---|---|---|---|
| 200 | NA | - | 成功。 |
| 400 | 21004001 | LACK_OF_PARAM | 缺少入参,请检查参数列表。 |
| 400 | 21004002 | PARAM_INVALID | 参数校验失败,请检查参数列表。 |
| 400 | 21004009 | PARENTFOLDER_NOT_FOUND | 父目录不存在,建议指定父目录后重试。 |
| 403 | 21004032 | SERVICE_NOT_SUPPORT | 服务不支持。 |
| 403 | 21004035 | INSUFFICIENT_SCOPE | Scope校验失败。 |
| 403 | 21004036 | INSUFFICIENT_PERMISSION | 角色权限不足。 |
| 500 | 21005006 | SERVER_TEMP_ERROR | 服务器异常。 |
| 403 | 21074033 | AGREEMENT_NOT_SIGNED | 用户还未签署华为云空间用户协议,请签署协议后进行重试。 |
| 403 | 21084031 | DATA_MIGRATING | 正处于安全策略更新, 请等待安全策略更新完成。 |
| 410 | 21084100 | CURSOR_EXPIRED | 游标过期,请重新获取游标。 |
| 410 | 21084101 | TEMP_DATA_CLEARD | 临时数据已经被清理,请重新获取游标。 |
| 500 | 21085002 | OUTER_SERVICE_UNAVAILABLE | 服务器异常。 |
| 500 | 21085006 | SERVER_TEMP_ERROR | 服务器异常。 |
public static void main(String[] args) throws IOException {
// 设置请求地址和用户认证令牌
String url = "https://driveapis.cloud.huawei.com.cn/drive/v1/files";
String access_token = "CF3qCeRPLh5GzjpB3ta5UscyjQa2rZhjgFzULNJqVDmCGCJi7IjrQwG7MKmpWIHTq6PRVeYSDsTZtjMbeCoP9ReANeBzHPYRHAppt8HZAaw/3H+IiLbWzQ==";
// 获取文件列表信息
JSONObject fileInfo = filesList(url, access_token);
System.out.println(fileInfo.toJSONString());
}
private static JSONObject filesList(String url, String access_token) throws IOException {
StringBuilder stringBuilder = new StringBuilder("");
stringBuilder.append("?").append("fields=*");
stringBuilder.append("&").append("prettyPrint=true");
HttpGet httpGet = new HttpGet(url + stringBuilder);
httpGet.setHeader("Authorization","Bearer " + access_token);
RequestConfig requestConfig = RequestConfig.custom()
.setConnectTimeout(50000).setConnectionRequestTimeout(10000)
.setSocketTimeout(50000).build();
httpGet.setConfig(requestConfig);
CloseableHttpResponse response = HttpClientUtil.getClient().execute(httpGet);
try {
HttpEntity responseEntity = response.getEntity();
String ret = responseEntity != null ? EntityUtils.toString(responseEntity) : null;
JSONObject jsonObject = (JSONObject) JSON.parse(ret);
EntityUtils.consume(responseEntity);
return jsonObject;
}finally {
response.close();
}
}