Alexey created LIBCLOUD-792:
-------------------------------

             Summary: S3 SignatureDoesNotMatch
                 Key: LIBCLOUD-792
                 URL: https://issues.apache.org/jira/browse/LIBCLOUD-792
             Project: Libcloud
          Issue Type: Bug
          Components: Storage
            Reporter: Alexey


I noticed that *sometimes* upload fails with SignatureDoesNotMatch error. I 
tried to debug this, and I got the following notice in the error message from 
S3:

{code:xml}
<StringToSign>PUT\nE8F2ok2KBiJTfNy91PLz+A==\n\n1452529414\n/mybucket/11.png?partNumber=1&uploadId=DQGexmin_N3usw4giAtLWoRbCWWRWQij2a20xPO_BgSRENZRpgGqhgMm9goSPoHkmkheIMBrPcI_Z2xWZtqMmZcmekuVhpTBre4cuS.nfyP6DQuTPEuAYop5abOHbm2t</StringToSign>
{code}

and in the code libcloud/storage/drivers/s3.py:147 string_to_sign equals the 
following

{code:none}
string_to_sign = 
"PUT\nE8F2ok2KBiJTfNy91PLz+A==\n\n1452529414\n/mybucket/11.png?uploadId=DQGexmin_N3usw4giAtLWoRbCWWRWQij2a20xPO_BgSRENZRpgGqhgMm9goSPoHkmkheIMBrPcI_Z2xWZtqMmZcmekuVhpTBre4cuS.nfyP6DQuTPEuAYop5abOHbm2t&partNumber=1"
{code}

Obviously the order of GET parameters is not preserved. I have no idea how to 
hot-fix this issue (except replacing *params* dictionary with OrderedDict or 
array of tuples, but this is a pretty big change)



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to