0005-00000419

问题描述

客户端加密分片上传的分片大小与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时指定的参数大小具有相同的值。

相关文档