summaryrefslogtreecommitdiff
path: root/boto/s3/bucket.py
diff options
context:
space:
mode:
Diffstat (limited to 'boto/s3/bucket.py')
-rw-r--r--boto/s3/bucket.py14
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)