更新时间:2024-10-24 GMT+08:00
分享

创建文件元数据

功能介绍

上传文件第一步,该接口会创建文件的元数据。如果秒传未命中,需要走上传流程。当秒传命中时,则文件上传完成。

URI

POST /koodrive/ose/v1/files/create

请求参数

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

language

String

国际化语言标识,符合i18n规范,如zh-CN表示简体中文,en-US表示美式英语,不传默认美式英语

表2 请求Body参数

参数

是否必选

参数类型

描述

createdTime

String

文件创建时间,格式:yyyy-MM-dd'T'HH:mm:ss'Z',样例:2023-08-18T05:43:49Z

description

String

文件描述

mimeType

String

资源类型

fileName

String

文件名,不能包括'<>|:"*?/',不能等于'..','.','',最长250个字符

fileType

String

文件类型,业务自行定义

parentFolder

Array of strings

父目录标识列表,当目标为根目录时值为root

当前只支持一个父目录,如果传入多个父目录id,只会取第一个作为父目录id

sha256

String

用SHA256计算的文件完整摘要信息

length

Long

文件的长度,单位:字节

uploadMode=multipart时,取值应小于等于200GB

uploadMode

String

上传模式,枚举值:

  • multipart:分段上传

uploadType

Integer

上传类型,枚举值:

  • 0:普通上传(暂时不支持)

  • 1:分段上传

  • 2:多版本上传(暂时不支持)

autoRename

Integer

重名策略,枚举值:

  • 2:强制重命名,出现重名文件时,文件名末尾追加时间戳

  • 3:拒绝重命名,出现重名文件时,创建失败

  • 4:自动重命名,出现重名,且文件sha256值一样时,不会创建文件,否则按强制重命名逻辑执行

multiParts

Array of MultiPartInfo objects

分片信息列表

containerId

String

文件上传的目标空间的Id

preHash

String

用SHA256计算的文件前1KB的摘要信息

proofCode

String

存储签名,使用文件的二级制数据生成,防撞库

表3 MultiPartInfo

参数

是否必选

参数类型

描述

partNumber

Integer

分片编号

partSize

Long

分片长度,取值范围[5242880, 5368709120],最后一个分片取值范围[0, 5368709120]

minimum: 0

maximum: 5368709120

partOffset

Long

到上一个数据块为止的总长度,单位为字节,该字段仅在分片并行上传时有效,分片并行上传时,除最后一个分片外,分片并行上传的其它分片大小,必须是 64字节的倍数

hashCtx

Array of longs

用于迭代计算SHA256的上下文,该字段仅在分片并行上传时有效。对于SHA1,取值为上一个数据块SHA1的第1-5个32位变量。对于SHA256,取值为上一个数据块SHA256的第1-8个32位变量。

注:分片并行上传时除第一个分片外其他分片必填。

uploadUrl

String

文件上传的URL,返回参数

partId

String

分片对象ID

响应参数

状态码: 200

表4 响应Body参数

参数

参数类型

描述

fileId

String

文件id

rapidUpload

Boolean

是否秒传命中(true表示秒传命中)

containerId

String

文件所在空间id

fileName

String

上传后文件名,如果没有重命名则和请求参数的文件名保持一致

uploadId

String

文件上传Id

parentFolder

Array of strings

上传后文件所在父目录Id

exist

Boolean

文件是否存在,仅在入参autoRename=4时使用,当文件名一致,且文件的sha256一致,返回true

multiParts

Array of MultiPartInfo objects

分片信息,在分段上传时(uploadMode=multipart)返回

matchedPreHash

Boolean

存在匹配的preHash

code

String

返回码

msg

String

返回信息

表5 MultiPartInfo

参数

参数类型

描述

partNumber

Integer

分片编号

partSize

Long

分片长度,取值范围[5242880, 5368709120],最后一个分片取值范围[0, 5368709120]

minimum: 0

maximum: 5368709120

partOffset

Long

到上一个数据块为止的总长度,单位为字节,该字段仅在分片并行上传时有效,分片并行上传时,除最后一个分片外,分片并行上传的其它分片大小,必须是 64字节的倍数

hashCtx

Array of longs

用于迭代计算SHA256的上下文,该字段仅在分片并行上传时有效。对于SHA1,取值为上一个数据块SHA1的第1-5个32位变量。对于SHA256,取值为上一个数据块SHA256的第1-8个32位变量。

注:分片并行上传时除第一个分片外其他分片必填。

uploadUrl

String

文件上传的URL,返回参数

partId

String

分片对象ID

请求示例

通过“分片上传”方式创建文件元数据,该示例指定了一个分片,后续响应会返回对应分片的上传地址,需要将对应分片通过PUT请求上传对应的分片。

POST /koodrive/ose/v1/files/create

Authorization:Bearer+10f88*********4791e9ff

{
    "containerId": "IAADfsBFCO6WtAtuA9add2fea594e4e75b8feb8474ef236",
    "parentFolder": [
        "root"
    ],
    "createdTime": "2020-05-18T01:43:49Z",
    "mimeType": "application/x-zip-compressed",
    "fileType": 35,
    "fileName": "demo.zip",
    "sha256": "08a784aeb181506391c20c6355f881dc363d8c3e0739d295e5d6f410d05dbc69",
    "length": 22106481,
    "uploadMode": "multipart",
    "uploadType": 1,
    "autoRename": 2,
    "multiParts": [
        {
            "partNumber": 1,
            "partOffset": 0,
            "partSize": 22106481
        }
    ],
    "description": ""
}

响应示例

状态码: 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

上传文件第一步完成返回的信息

相关文档