| 承载协议 | HTTP GET |
|---|---|
| 接口方向 | 开发者服务器->华为云空间服务器 |
| 接口URL | https://driveapis.cloud.huawei.com.cn/drive/v1/files/{fileId}/historyVersions |
| 数据格式 | 请求消息:Content-Type: application/json 响应消息:Content-Type: application/json |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| pageSize | 否 | integer | 每页返回的个数,默认是100,可接受值1-100。注意在到达最后的列表之前,实际有可能返回部分或者空结果。 |
| cursor | 否 | string | 当前页游标,由前一个响应的nextCursor获取。 |
| fields | 是 | string | 采用[Partial-response格式],具体使用见公共说明。 |
| form | 否 | string | 媒体格式。 |
| prettyPrint | 否 | boolean | 是否以美观格式输出。 |
| quotaId | 否 | string | 用户标识,小于40个字符。用于限制单个用户的API访问数量。 |
| callback | 否 | string | JSONP的callback函数。 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| 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/BjYqWC-dH6-gcN6p5zxhI4I7Z1wtrR-po/historyVersions?fields=* HTTP/1.1 Accept: application/json Authorization: Bearer CgB6e3x9Bjh6m9tm8OB0GXjeMWk0m4pVnLmwteDNWXOKPhh0/tjwtIy6Q+OscvD7zhdrElYD0Rak6xA7dI4BM3GSQTuUgFK6ZwFk7K/fjJS5vB7JFmV3 Cache-Control: no-cache
状态码为200时:
| 参数 | 参数类型 | 描述 |
|---|---|---|
| category | string | 类型,固定为drive#permissionList。 |
| nextCursor | string | 下一页游标,为空表示最后一页。 |
| historyVersions[] | list | 历史记录列表。 |
| historyVersions.category | string | 类型,固定为drive#historyVersion。 |
| historyVersions.id | string | 历史记录ID。 |
| historyVersions.mimeType | string | 文件类型。 |
| historyVersions.editedTime | string | 修改时间。 |
| historyVersions.keepPermanent | boolean | 是否永久保存。 |
| historyVersions.lastEditor.category | string | 类型,固定为drive#user。 |
| historyVersions.lastEditor.displayName | string | 用户显示名。 |
| historyVersions.lastEditor.profilePhotoLink | string | 用户头像链接(默认不返回)。 |
| historyVersions.lastEditor.me | boolean | 是否是我。 |
| historyVersions.lastEditor.permissionId | string | 权限id。 |
| historyVersions.lastEditor.userAccount | string | 帐号名称(默认不返回)。 |
| historyVersions.originalFilename | string | 用于创建此修订版的原始文件名。此参数为初次创建文件实体时的文件名,只支持读取涉及文件实体的更新后的元数据,仅对文件元数据更新获取不到。 |
| historyVersions.size | integer | 文件大小。 |
| historyVersions.sha256 | string | 文件的sha256。 |
HTTP/1.1 200 OK
{
"historyVersions": [
{
"editedTime": "2020-05-15T06:21:11Z",
"size": 1,
"sha256": "4dcdc56b396adb1b68ad3257f2f9679f0b289ff003bbf3251bc7c8956c731849",
"lastEditor": {
"permissionId": "239606675785384320",
"displayName": "*******3121@**3.com",
"me": true,
"category": "drive#user"
},
"id": "362821313154268928.362821313154268929",
"mimeType": "text/plain",
"category": "drive#historyVersion",
"keepPermanent": false
}
],
"category": "drive#historyVersionList"
} 错误码后4位为业务错误码,用于区分错误场景,其他业务错误码见状态码章节。
| 状态码 | 错误码 | 响应代码 | 描述 |
|---|---|---|---|
| 200 | NA | 成功。 | |
| 400 | 21004002 | PARAM_INVALID | 输入参数错误,请检查参数列表。 |
| 403 | 21074033 | AGREEMENT_NOT_SIGNED | 用户还未签署华为云空间用户协议。 |
| 403 | 21084031 | DATA_MIGRATING | 正处于安全策略更新, 请等待安全策略更新完成。 |
| 403 | 21084038 | OUTER_SERVICE_ERROR | 外部服务错误。 |
| 403 | 21094038 | OUTER_SERVICE_ERROR | 外部服务错误。 |
| 404 | 21084041 | CONTENT_NOT_FOUND | 内容未发现。 |
| 500 | 21085002 | OUTER_SERVICE_UNAVAILABLE | 外部服务不可用。 |
public static void main(String[] args) throws IOException {
// 设置请求地址,文件ID,权限ID和用户认证令牌
String url = "https://driveapis.cloud.huawei.com.cn/drive/v1/files";
String fileId = "AB0tr6O8DTQAguUs3yPFt3wQ5SDfLg04A";//Your own fileId
String access_token = "CV5T547SEXpRlyuxqvz+PnRCtnVu784+OEIXmXAafKC+ifA3eJRnM0Ttsv20bJCkrcA+FNi4bU4nKcbERpQxlkMLQ6/Xt1iEQJYrFMyamnnI9JUV+jz4cQ==";
// 列举文件历史信息
JSONObject historyVersionsInfo = historyVersionsList(url, access_token, fileId);
System.out.println(historyVersionsInfo.toJSONString());
}
private static JSONObject historyVersionsList(String url, String access_token, String fileId) throws IOException {
StringBuilder stringBuilder = new StringBuilder("");
stringBuilder.append("/").append(fileId).append("/").append("historyVersions");
stringBuilder.append("?").append("fields=*");
HttpGet httpGet = new HttpGet(url + stringBuilder);
httpGet.setHeader("Authorization","Bearer " + access_token);
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();
}
}