Esempio n. 1
0
 def build_auth_path(self, bucket, key=u''):
     bucket = six.ensure_text(bucket, encoding='utf-8')
     key = get_utf8able_str(key)
     path = u''
     if bucket != u'':
         path = u'/' + bucket
     return path + '/%s' % urllib.parse.quote(key)
Esempio n. 2
0
def write_to_fd(fd, data):
    """Write given data to given file descriptor, doing any conversions needed"""
    if six.PY2:
        fd.write(data)
        return
    # PY3 logic:
    if isinstance(data, bytes):
        if ((hasattr(fd, 'mode') and 'b' in fd.mode)
                or isinstance(fd, io.BytesIO)):
            fd.write(data)
        elif hasattr(fd, 'buffer'):
            fd.buffer.write(data)
        else:
            fd.write(six.ensure_text(data))
    elif 'b' in fd.mode:
        fd.write(six.ensure_binary(data))
    else:
        fd.write(data)
Esempio n. 3
0
 def build_url_base(self, connection, protocol, server, bucket, key=''):
     url_base = '%s://' % six.ensure_text(protocol)
     url_base += self.build_host(server, bucket)
     url_base += connection.get_path(self.build_path_base(bucket, key))
     return url_base