
# 创建历史多版本 - createHistoryVersions
#### 功能介绍
创建历史多版本。
#### 授权信息
当前API调用无需身份策略权限。
#### URI
POST /koodrive/ose/v1/revision/createRevision
#### 请求参数
表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鉴权                                                                                                                                                    |
| X-Traceid     | 否    | String | 消息日志跟踪标识（必须58位）                                                                                                                                               |
| language      | 否    | String | 国际化语言标识，符合i18n规范，如zh-CN表示简体中文，en-US表示美式英语，不传默认美式英语                                                                                                            |
   
表2请求Body参数 
| 参数          | 是否必选 | 参数类型                                                                            | 描述                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
|:---|:---|:---|:---|
| createdTime | 否    | String                                                                          | 文件创建时间，格式：yyyy-MM-dd'T'HH:mm:ss'Z'，样例：2023-08-18T05:43:49Z                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| fileId      | 是    | String                                                                          | 文件id                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| keepPolicy  | 否    | Integer                                                                         | 保存策略：0: 自动清理；1: 永久保存                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| mimeType    | 否    | String                                                                          | 资源类型                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
| sha256      | 否    | String                                                                          | 用SHA256计算的文件完整摘要信息                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
| length      | 是    | Long                                                                            | 文件的长度，单位：字节 uploadMode=multipart时，取值应小于等于200GB                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| uploadMode  | 是    | String                                                                          | 上传模式，枚举值： - multipart：分段上传                                                                                                                                                                                                                                                                                                                           |
| uploadType  | 是    | Integer                                                                         | 上传类型，枚举值： - 0：普通上传（暂时不支持）   - 1：分段上传   - 2：多版本上传（暂时不支持）    |
| multiParts  | 否    | Array of [MultiPartInfo] objects | 分片信息列表                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| preHash     | 否    | String                                                                          | 用SHA256计算的文件前1KB的摘要信息                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| proofCode   | 否    | String                                                                          | 存储签名，使用文件的二级制数据生成，防撞库。当传入sha256时，该字段必传                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| containerId | 是    | String                                                                          | 空间id                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
   
 表3MultiPartInfo 
| 参数         | 是否必选 | 参数类型           | 描述                                                                                                                                                                            |
|:---|:---|:---|:---|
| partNumber | 是    | Integer        | 分片编号，取值1-10000                                                                                                                                                                |
| partSize   | 是    | Long           | 分片长度，取值范围\[5242880, 5368709120\]，最后一个分片取值范围\[0, 5368709120\] minimum: 0 maximum: 5368709120 |
| partOffset | 否    | Long           | 到上一个数据块为止的总长度，单位为字节，该字段仅在分片并行上传时有效，分片并行上传时，除最后一个分片外，分片并行上传的其它分片大小，必须是 64字节的倍数                                                                                                 |
| hashCtx    | 否    | Array of longs | 用于迭代计算SHA256的上下文，该字段仅在分片并行上传时有效。对于SHA256，取值为上一个数据块SHA256的第1-8个32位变量。 注：分片并行上传时除第一个分片外其他分片必填。                                         |
| uploadUrl  | 否    | String         | 文件上传的URL，返回参数，上传文件需要使用PUT方法                                                                                                                                                   |
| partId     | 否    | String         | 分片对象ID                                                                                                                                                                        |
   
#### 响应参数
**状态码：200**
表4响应Body参数 
| 参数             | 参数类型                                                                             | 描述                                                                                                                                               |
|:---|:---|:---|
| id             | String                                                                           | Asset ID                                                                                                                                         |
| versionId      | String                                                                           | \*Asset版本ID                                                                                                                                      |
| version        | String                                                                           | 版本号                                                                                                                                              |
| keepPolicy     | String                                                                           | 历史版本的保存策略 0: 自动清理，保留两个版本，第三个版本时淘汰最早的（目的是为了防止并发场景下获取失败） 1: 永久保存 |
| rapidUpload    | Boolean                                                                          | 是否秒传命中（true表示秒传命中）                                                                                                                               |
| uploadId       | String                                                                           | 文件上传Id                                                                                                                                           |
| multiParts     | Array of [MultiPartInfo] objects | 分片信息，在分段上传时（uploadMode=multipart）返回                                                                                                              |
| matchedPreHash | Boolean                                                                          | 存在匹配的preHash                                                                                                                                     |
| code           | String                                                                           | 返回码                                                                                                                                              |
| msg            | String                                                                           | 返回信息                                                                                                                                             |
   
 表5MultiPartInfo 
| 参数         | 参数类型           | 描述                                                                                                                                                                            |
|:---|:---|:---|
| partNumber | Integer        | 分片编号，取值1-10000                                                                                                                                                                |
| partSize   | Long           | 分片长度，取值范围\[5242880, 5368709120\]，最后一个分片取值范围\[0, 5368709120\] minimum: 0 maximum: 5368709120 |
| partOffset | Long           | 到上一个数据块为止的总长度，单位为字节，该字段仅在分片并行上传时有效，分片并行上传时，除最后一个分片外，分片并行上传的其它分片大小，必须是 64字节的倍数                                                                                                 |
| hashCtx    | Array of longs | 用于迭代计算SHA256的上下文，该字段仅在分片并行上传时有效。对于SHA256，取值为上一个数据块SHA256的第1-8个32位变量。 注：分片并行上传时除第一个分片外其他分片必填。                                         |
| uploadUrl  | String         | 文件上传的URL，返回参数，上传文件需要使用PUT方法                                                                                                                                                   |
| partId     | String         | 分片对象ID                                                                                                                                                                        |
   
#### 请求示例
通过"分片上传"方式创建文件多版本的元数据，该示例指定了一个分片，后续响应会返回对应分片的上传地址，需要将对应分片通过PUT请求上传对应的分片。
```
POST koodrive/ose/v1/revision/createRevision
Authorization:Bearer+10f88*********4791e9ff
{
  "containerId": "IAAAKIRZGifzJgncA1605122035640590977",
  "fileId": "FkiferVNK5NwXck7XXBhPLIRhV1GayJPc",
  "mimeType": "application/vnd.rar",
  "keepPolicy": null,
  "sha256": "d4bb3c0502f28a8e9b1485b55aa410c92a0e4ba07c15548253f3f8f698c7f014",
  "length": 211031,
  "uploadType": 1,
  "autoRename": 2,
  "uploadMode": "multipart",
  "proofCode": "1ca9e8220831d294df0b5aec1d448a4553b125ad0ec307fd",
  "multiParts": [
    {
      "hashCtx": [],
      "partNumber": 1,
      "partOffset": 0,
      "partSize": 211031
    }
  ]
}
```
#### 响应示例
**状态码：200**
上传文件第一步完成返回的信息
```
{
  "fileId" : "FnkL1QhXj8muHBuSWCHtFFY8Azue44Snr",
  "containerId" : "IAADfsBFCO6WtAtuA9add2fea594e4e75b8feb8474ef236",
  "fileName" : "test_20240104_105403.zip",
  "uploadId" : "0000018CD26464022026422966B8879A",
  "parentFolder" : [ "DEUI7pa0C24ArootIAADfsBFCO6WtAtuA9add2fea594e4e75b8feb8474ef236" ],
  "exist" : false,
  "multiParts" : [ {
    "partNumber" : 1,
    "partSize" : 22106481,
    "partOffset" : 0,
    "uploadUrl" : "https://b10-obs-ykj-uat-01.obs.cidc-rp-2006.joint.cmecloud.cn/ff6b221b4b474c829c1cd5037f1504ca086?partNumber=1&uploadId=0000018CD26464022026422966B8879A&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Date=20240104T025403Z&X-Amz-SignedHeaders=content-length%3Bhost&X-Amz-Expires=3600&X-Amz-Credential=MKRISPBZAJWFHNBJ5WLB%2F20240104%2Fcidc-rp-2006%2Fs3%2Faws4_request&X-Amz-Signature=39b9b620c8de901682675059cfcfa9902a13fb5c6ab38fe1451763feb6a8323c"
  } ],
  "code" : 0,
  "msg" : "Success."
}
```
#### 状态码
| 状态码 | 描述             |
|:---|:---|
| 200 | 上传文件第一步完成返回的信息 |
   
