Problem description
The x-oss-meta-client-side-encryption-magic-number-hmac header is missing from the PutObject, InitiateMultipartUpload, or UploadPart request in client-side encryption scenarios.
Causes
The x-oss-meta-client-side-encryption-magic-number-hmac header is required in the PutObject, InitiateMultipartUpload, and UploadPart requests if the x-oss-meta-client-side-encryption-wrap-alg header is set to rsa.
Examples
For example, you initiate an InitiateMultipartUpload request:
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-key: val0
x-oss-meta-client-side-encryption-start: val1
x-oss-meta-client-side-encryption-cek-alg: val2
x-oss-meta-client-side-encryption-wrap-alg: rsa
x-oss-meta-client-side-encryption-data-size: val5
x-oss-meta-client-side-encryption-part-size: val6The error is returned for the request because the x-oss-meta-client-side-encryption-wrap-alg header is set to rsa but the x-oss-meta-client-side-encryption-magic-number-hmac header is missing.
Solutions
If the x-oss-meta-client-side-encryption-wrap-alg header is set to rsa in the PutObject, InitiateMultipartUpload, or UploadPart request, include the x-oss-meta-client-side-encryption-magic-number-hmac header in the request.