diff options
Diffstat (limited to 'boto/s3/bucket.py')
-rw-r--r-- | boto/s3/bucket.py | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/boto/s3/bucket.py b/boto/s3/bucket.py index 355716b4..504f24f9 100644 --- a/boto/s3/bucket.py +++ b/boto/s3/bucket.py @@ -204,12 +204,9 @@ class Bucket(object): k = self.key_class(self) provider = self.connection.provider k.metadata = boto.utils.get_aws_metadata(response.msg, provider) - k.etag = response.getheader('etag') - k.content_type = response.getheader('content-type') - k.content_encoding = response.getheader('content-encoding') - k.content_disposition = response.getheader('content-disposition') - k.content_language = response.getheader('content-language') - k.last_modified = response.getheader('last-modified') + for field in Key.base_fields: + k.__dict__[field.lower().replace('-', '_')] = \ + response.getheader(field) # the following machinations are a workaround to the fact that # apache/fastcgi omits the content-length header on HEAD # requests when the content-length is zero. @@ -219,7 +216,6 @@ class Bucket(object): k.size = int(response.getheader('content-length')) else: k.size = 0 - k.cache_control = response.getheader('cache-control') k.name = key_name k.handle_version_headers(response) k.handle_encryption_headers(response) @@ -381,7 +377,9 @@ class Bucket(object): key = 'max-keys' if not isinstance(value, six.string_types + (six.binary_type,)): value = six.text_type(value) - if value != '': + if not isinstance(value, six.binary_type): + value = value.encode('utf-8') + if value: pairs.append(u'%s=%s' % ( urllib.parse.quote(key), urllib.parse.quote(value) |