初始化一个 Multipart Upload 之后,可以根据指定的 Object 名和 Upload ID 来分片(Part)上传数据。每一个上传的 Part 都有一个标识它的号码(part number,范围是1~10,000)。 对于同一个 Upload ID,该号码不但唯一标识这一块数据,也标识了这块数据在整个文件内的相对位置。如果你用同一个 Part 号码,上传了新的数据,那么 棱束链对象储存 上已有的这个号码的 Part 数据将被覆盖。 除了最后一块 Part 以外,其他的 Part 最小为5MB,单个Part 最大为95MB;最后一块 Part 没有大小限制。
请求语法
PUT /bucket-name/multi-part-obj?partNumber=PartNumber&uploadId=UploadId HTTP/1.1
Host: s3-us-east-1.ossfiles.com
Content-Length:ContentLength
x-amz-content-sha256:ContentSha256
Date: GMT Date
Authorization: SignatureValue
响应头部
名称 | 描述 |
---|---|
ETag | ETag (entity tag) 在每个 Part 生成的时候被创建,ETag 值是该 Part 内容的 uuid,可以用于检查该 Part 内容是否发生变化。 类型:字符串 |
细节分析
示例
请求示例:
PUT /test212/1.vmdk?partNumber=2&uploadId=323db2d29e0be022e1e21d1b7c91594c HTTP/1.1
Authorization: AWS4-HMAC-SHA256 Credential=6a19c6de088ff32ff663287eec8f3b85/20220420/us-east-1/s3/aws4_request,SignedHeaders=host;user-agent;x-amz-content-sha256;x-amz-date, Signature=50976ee45a47f1bb22df3531c382c2ef1b9dafdb707bfa805002314fb2f67b70
x-amz-content-sha256: c0f225b909ff79caa5e84d6958566d08dd9d7fda6ef2f7c44a0bc76104ae50dd
x-amz-date: 20220420T094947Z
Host: s3-us-east-1.ossfiles.com
Content-Length: 5242880
返回示例:
HTTP/1.1 200 OK
Date: Wed, 20 Apr 2022 09:49:52 GMT
Content-Length: 0
Connection: keep-alive
ETag: "d640e8ca7f736e1f4037283c1296076c"
Expires: Sat, 03 Mar 1990 23:33:33 GMT