问题描述
客户端加密分片上传的分片大小与InitiateMultipartUpload请求中指定的分片大小参数不同。
问题原因
客户端加密场景下UploadPart 时上传数据的大小不符合预期。
客户端加密场景下,在InitiateMultipartUpload时需要携带请求头x-oss-meta-client-side-encryption-part-size
。在后续UploadPart 操作时,除了最后一个part,上传的数据大小与该请求头指定的大小需要相同。如果上传的数据与InitiateMultipartUpload时传入的参数大小不同则会报此错误。
问题示例
例如您事先发起了一个InitiateMultipartUpload请求:
POST /multipart.data?uploads HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Date: Wed, 22 Feb 2012 08:32:21 GMT
x-oss-storage-class: Archive
Authorization: OSS qn6q**************:77Dv****************
x-oss-meta-client-side-encryption-data-size: 2048
x-oss-meta-client-side-encryption-part-size: 1024
此后您又发起了一个UploadPart请求:
PUT /multipart.data?partNumber=1&uploadId=0004B9895DBBB6EC9**** HTTP/1.1
Host: oss-example.oss-cn-hangzhou.aliyuncs.com
Content-Length:6291456
Date: Wed, 22 Feb 2012 08:32:21 GMT
Authorization: OSS qn6q**************:77Dv****************
x-oss-meta-client-side-encryption-part-size: 1024
[6291456 bytes data]
上传数据大小不符合预期,请求返回失败。
解决方案
确保在UploadPart请求中上传的数据大小与InitiateMultipartUpload时指定的参数大小具有相同的值。
相关文档
文档内容是否对您有帮助?