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)
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)
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