Skip to content
大纲

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-MD5StringRFC2616定义的HTTP请求内容的MD5摘要,可以通过携带该字段来验证保存在FOS侧的文件和用户预期的文件是否一致。
x-fos-content-sha256String通过携带该字段来验证保存在FOS侧的文件和用户预期的文件是否一致,sha256的校验准确性更高。所传数据的sha256值必须与此匹配,否则UploadPart失败。
x-fos-content-crc32String上传object的CRC值(循环冗余校验码)。

请求参数

名称类型参数位置描述是否必需
partNumberIntQuery参数本次上传的part在object的相对位置
uploadIdStringQuery参数InitiateMultipartUpload获取的UploadId

响应(Response)

响应元素

响应头域

名称类型描述
ETagString每个上传分块的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