Bug #10271
closedRadosgw urlencode
0%
Description
When performing a multipart upload using AWS SDK JS v.2.0.29 I can see that the uploadId always starts with "2/" which
is urlencoded as "2%2F"
My belief is that Radosgw cannot correctly decode the "2/" hence it produces as 403 error.
If I try to perform the same multipart upload at an older version ceph version 0.72.2 (a913ded2ff138aefb8cb84d347d72164099cfd60) then I can see the upload ID in the apache log as:
"PUT /test/XXXX.dat?partNumber=25&uploadId=I3yihBFZmHx9CCqtcDjr8d-RhgfX8NW HTTP/1.1" 200 - "-" "aws-sdk-nodejs/2.0.29 linux/v0.10.33"
but when I try the same at ceph version 0.80.7 (6c0127fcb58008793d3c8b62d925bc91963672a3) I get the following:
"PUT /test/XXXX.dat?partNumber=12&uploadId=2%2Ff9UgnHhdK0VCnMlpT-XA8ttia1HjK36 HTTP/1.1" 403 78 "-" "aws-sdk-nodejs/2.0.29 linux/v0.10.33"
Since I didn't want to break anything further I 've decided to use a hexadecimal editor and replace the "2/" part with a "2-" in the radosgw binary.
After performing this change all multipart uploads on v.0.80.7 are working as expected. I am attaching both binaries for reference.
I believe that it is defined here :
rgw_op.cc: upload_id = "2/"; /* v2 upload id */
Could you please verify the bug and fix it properly?
Regards,
George
P.S.: I forgot to mention that my system is running CentOS 6.6
Files