创建文件

描述

将上传好的所有数据块按指定顺序合并成一个资源文件。

请求

请求语法

POST /mkfile/<fileSize>/key/<encodedKey>/mimeType/<encodedMimeType>/x:user-var/<encodedUserVars> HTTP/1.1
Host:           <UpHost>
Content-Type:   text/plain
Content-Length: <ctxListSize>
Authorization:  UpToken <UploadToken>

<ctxList>

请求参数

参数名称 必填 类型 说明
/<fileSize> int64 资源文件大小。
/key/<encodedKey> string 进行URL安全的Base64编码后的资源名
若未指定,则使用saveKey
若未指定saveKey,则使用资源内容的SHA1值作为资源名。
mimeType/<encodedMimeType> string 进行URL安全的Base64编码后的文件mimeType
若未指定,则根据文件内容自动检测mimeType
/x:user-var/<encodedUserVars> string 指定自定义变量

头部信息

头部名称 必填 说明
Host 上一次上传响应返回的后续上传接收地址。
Content-Type 固定为text/plain。
Content-Length 所有块的<ctx>及分隔符的总长度,单位:字节(Byte)。
Authorization 该参数应严格按照上传凭证格式进行填充,否则会返回401错误码
一个合法的Authorization值应类似于:UpToken QNJi_bYJlmO5LeY08FfoNj9w_r7...

请求内容

该请求的内容为每个数据块最后一个数据片上传后得到的<ctx>的列表,以“,”分隔,按其在源文件中的位置排序。
注意:列表最后一项后面不需要添加“,”。

<lastCtxOfBlock1>,<lastCtxOfBlock2>,<lastCtxOfBlock3>,...,<lastCtxOfBlockN>

访问权限

上传凭证方式。

响应

头部信息

头部名称 必填 说明
Content-Type 正常情况下该值将被设为application/json,表示返回JSON格式的文本信息。

其它可能返回的头部信息,请参考HTTP响应扩展字段

响应内容

■ 如果请求成功,返回包含如下内容的JSON字符串(已格式化,便于阅读):

{
    "hash": "<ContentHash  string>", 
    "key":  "<Key          string>"
}
字段名称 必填 说明
hash 资源内容的SHA1值
key 实际资源名

■ 如果请求失败,返回包含如下内容的JSON字符串(已格式化,便于阅读):

{
    "code":     <HttpCode  int>, 
    "error":   "<ErrMsg    string>"
}
字段名称 必填 说明
code HTTP状态码,请参考响应状态码
error 与HTTP状态码对应的消息文本。

响应状态码

HTTP状态码 含义
200 创建文件成功。
400 请求报文格式错误。
401 上传凭证无效。
579 回调业务服务器失败。
599 服务端操作失败。
如遇此错误,请将完整错误信息(包括所有HTTP响应头部)通过邮件发送给我们。
614 目标资源已存在。

附注

  • 可以复用创建块时使用的上传凭证。
  • 上传凭证将被重新验证,若已过期,可以使用重新生成的凭证。
  • 若参数中指定了资源名,而所用上传策略的scope字段中也指定了资源名,且两者不一致,操作将失败且返回401状态码。

内部参考资源


如果有任何问题,请进入 七牛云存储问答社区 或者发送 工单 咨询