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)