問題の説明
クライアントサイド暗号化マルチパートアップロードにおいて、UploadPart リクエスト内の x-oss-meta-client-side-encryption-start ヘッダーの値が、対応する InitiateMultipartUpload リクエストで設定された値と一致しません。
原因
OSS は、InitiateMultipartUpload リクエストと、同じマルチパートアップロードのすべての UploadPart リクエストの両方で、x-oss-meta-client-side-encryption-start ヘッダーに同じ値を設定することを要求します。値が異なる場合、OSS は UploadPart リクエストをエラーで拒否します。
例
次の例は、ヘッダー値の不一致がエラーをトリガーするケースを示しています。
InitiateMultipartUpload リクエスト:ヘッダーを value1 に設定します。
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-start: value1UploadPart リクエスト:ヘッダーを value2 に設定します (不一致)。
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-start: value2
[6291456 bytes data]value1 ≠ value2 であるため、OSS は UploadPart リクエストに対してエラーを返します。
ソリューション
InitiateMultipartUpload リクエストと、同じマルチパートアップロードのすべての UploadPart リクエストで、x-oss-meta-client-side-encryption-start を同じ値に設定します。