创建块

描述

为后续分片上传创建一个新的块,同时上传第一片数据。

请求

请求语法

POST /mkblk/<blockSize> HTTP/1.1
Host:           upload.qiniu.com
Content-Type:   application/octet-stream
Content-Length: <firstChunkSize>
Authorization:  UpToken <UploadToken>

<firstChunkBinary>

访问权限

上传凭证方式。

请求参数

参数名称 必填 类型 说明
<blockSize> int64 块大小,为4MB,最后一块大小不超过4MB。

头部信息

头部名称 必填 说明
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 第一个片的内容长度,单位为字节。
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响应头部)通过邮件发送给我们。

示例

我们拿一个小文件作为示例,该文件的大小适合作为一次完整上传展示。

命令行示例

curl -i \
     --data-binary '@test.txt' \
     -H "Authorization: UpToken QNJi_bYJlmO5LeY..." \
     -H "Content-Length: 1024" \
     "http://upload.qiniu.com/mkblk/1024"

请求示例

POST /mkblk/1024 HTTP/1.1
User-Agent: curl/7.30.0
Host: upload.qiniu.com
Accept: */*
Authorization: UpToken QNJi_bYJlmO5LeY08FfoNj9w_r...(过长已省略)

响应示例

以下响应中JSON字符串经过格式化,以便查看。

HTTP/1.1 200 OK
Server: nginx/1.0.8
Date: Sun, 03 Nov 2013 14:01:28 GMT
Content-Type: application/json
Connection: keep-alive
Cache-Control: no-store
Content-Length: 121
X-Log: qtbl.get;RS
X-Reqid: swEAAMipp-5bIjMT

{
    "ctx":          "ctx",
    "checksum":     "checksum",
    "crc32":        1345,
    "offset":       0,
    "host":         "http://up-nb-5.qbox.me"
}

附注

无。

内部参考资源


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