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)