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]


Reply via email to