上传片

描述

上传指定块的一片数据,具体数据量可根据现场环境调整。 同一块的每片数据必须串行上传。

请求

请求语法

POST /bput/<ctx>/<nextChunkOffset> HTTP/1.1
Host:           <UpHost>
Content-Type:   application/octet-stream
Content-Length: <nextChunkSize>
Authorization:  UpToken <UploadToken>

<nextChunkBinary>

请求参数

参数名称 必填 类型 说明
<ctx> string 前一次上传返回的块级上传控制信息。
<nextChunkOffset> int64 当前片在整个块中的起始偏移。

头部信息

头部名称 必填 说明
Host 上传服务器域名。
● 分片上传的首片上传域名为:上传到杭州1区的域名为up.qiniu.comup-z0.qiniu.comupload.qiniu.com;上传到北京1区的域名为up-z1.qiniu.comupload-z1.qiniu.com
● 后续片的上传为上一次上传响应返回的后续上传接收地址。
Content-Type 固定为application/octet-stream。
Content-Length 当前片的内容长度,单位:字节(Byte)。
Authorization 该参数应严格按照上传凭证格式进行填充,否则会返回401错误码。
一个合法的Authorization值应类似于:UpToken QNJi_bYJlmO5LeY08FfoNj9w_r7...

请求内容

该请求的内容为当前片的二进制内容。

访问权限

上传凭证方式。

响应

头部信息

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

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

响应内容

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

{
    "ctx":            "<Ctx          string>",
    "checksum":       "<Checksum     string>",
    "crc32":           <Crc32        int64>,
    "offset":          <Offset       int64>,
    "host":           "<UpHost       string>"
}
字段名称 必填 说明
ctx 本次上传成功后的块级上传控制信息,用于后续上传片创建文件
本字段是只能被七牛服务器解读使用的不透明字段,上传端不应修改其内容。
每次返回的<ctx>都只对应紧随其后的下一个上传数据片,上传非对应数据片会返回701状态码。
checksum 本块已上传部分的校验码,只能被七牛服务器解读使用。
crc32 本块已上传部分的CRC32值,上传端可通过此字段对本块已上传部分的完整性进行校验。
offset 下一个上传片在上传块中的偏移。
host 后续上传接收地址。

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

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

响应状态码

HTTP状态码 含义
200 上传片成功。
400 请求报文格式错误,报文构造不正确或者没有完整发送。
401 上传凭证无效。
599 服务端操作失败。
如遇此错误,请将完整错误信息(包括所有HTTP响应头部)通过邮件发送给我们。
701 后续上传接收地址不正确,或ctx信息已过期。

附注

  • 可以复用创建块时使用的上传凭证。
  • 上传凭证将被重新验证,若已过期,可以使用重新生成的凭证。

内部参考资源


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