Appearance
UploadPart
接口描述
在调用 InitiateMultipartUpload 获取 UploadId 后,我们需要用 UploadPart 命令来上传 Object 拆分后的数据(Part)。为了标识各个 Part 在 Object 的相对位置,在 UploadPart 需要指定一个 partNumber 参数,partNumber 的取值范围是 1 - 10000。 FOS Part 的大小有一定限制,除最后一个分片外,单个分片最小支持 100 KB,最大支持 5G,且整个 Object 大小不超过 48.8 TB。
请求(Request)
请求语法
PUT /<BucketName>/<ObjectName>?partNumber=PartNumber&uploadId=UploadId HTTP/1.1
Host: fos.flymeyun.com
Date: <Date>
Content-Length: <ContentLength>
请求头域
名字 | 类型 | 描述 |
---|---|---|
Content-MD5 | String | RFC2616定义的HTTP请求内容的MD5摘要,可以通过携带该字段来验证保存在FOS侧的文件和用户预期的文件是否一致。 |
x-fos-content-sha256 | String | 通过携带该字段来验证保存在FOS侧的文件和用户预期的文件是否一致,sha256的校验准确性更高。所传数据的sha256值必须与此匹配,否则UploadPart失败。 |
x-fos-content-crc32 | String | 上传object的CRC值(循环冗余校验码)。 |
请求参数
名称 | 类型 | 参数位置 | 描述 | 是否必需 |
---|---|---|---|---|
partNumber | Int | Query参数 | 本次上传的part在object的相对位置 | 是 |
uploadId | String | Query参数 | InitiateMultipartUpload获取的UploadId | 是 |
响应(Response)
响应元素
无
响应头域
名称 | 类型 | 描述 |
---|---|---|
ETag | String | 每个上传分块的ETag |
其他 | - | 其他RFC2616相关的Header字段 |
注意事项 UploadPart会返回本次Part的eTag,在MultipartUpload的第三步中需要此eTag,也建议用户用eTag验证上传数据的正确性。
示例
请求示例
PUT /BucketName/ObjectName?partNumber=PartNumber&uploadId=UploadId HTTP/1.1
Host: fos.flymeyun.com
Date: Wed, 06 Apr 2016 06:34:40 GMT
Content-length:2794
Content-Type:text/plain
[2794 bytes of object data]
响应示例
HTTP/1.1 200 OK
x-fos-request-id: 4db2b34d-654d-4d8a-b49b-3049ca786409
Date: Wed, 06 Apr 2016 06:34:40 GMT
ETag: "b54357faf0632cce46e942fa68356b38"
Content-Length: 0
Connection: keep-alive