mmilitzer opened a new issue #1452: URL: https://github.com/apache/libcloud/issues/1452
I'm referring to the older, unresolved issue here (it seems I cannot create a new issue nor comment on the older one over at issues.apache.org though I have a long-time user there...): https://issues.apache.org/jira/browse/LIBCLOUD-979 I can confirm that the reported issue happens also for Amazon S3, not only for CEPH as originally reported. And the problem is indeed that libcloud URL-encodes the tilde '~' sign to '%7E', which it shouldn't according to RFC 3986. The problem seems specific to Python 2 because in Python 3 urllib.quote() has been already updated to not URL-encode the tilde '~' sign anymore: https://bugs.python.org/issue16285 Because of this, I think the correct fix (other than the patch proposed in LIBCLOUD-979) would be adding the tilde '~' character to the safe characters in the urlquote() utility function in utils/py3.py to ensure consistent behavior between Python 2 and Python 3. `--- libcloud/utils/py3.py 2020-04-30 12:58:55.804591828 +0000 +++ libcloud_fixed/utils/py3.py 2020-04-30 12:59:25.975368813 +0000 @@ -211,7 +211,7 @@ tostring = ET.tostring - def urlquote(s, safe='/'): + def urlquote(s, safe='/~'): if isinstance(s, _real_unicode): # Pretend to be py3 by encoding the URI automatically. s = s.encode('utf8') ` ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected]
