Merge remote-tracking branch 'upstream/master' into adding_rds2_support

This commit is contained in:
Mike Fuller 2015-01-30 17:14:13 +11:00
commit d350ac438e
4 changed files with 7 additions and 4 deletions

View File

@ -333,7 +333,7 @@ class S3Backend(BaseBackend):
for key_name, key in bucket.keys.items(): for key_name, key in bucket.keys.items():
if delimiter and delimiter in key_name: if delimiter and delimiter in key_name:
# If delimiter, we need to split out folder_results # If delimiter, we need to split out folder_results
folder_results.add(key_name.split(delimiter)[0]) folder_results.add(key_name.split(delimiter)[0] + delimiter)
else: else:
key_results.add(key) key_results.add(key)

View File

@ -81,10 +81,13 @@ class ResponseObject(_TemplateEnvironmentMixin):
def _bucket_response_get(self, bucket_name, querystring, headers): def _bucket_response_get(self, bucket_name, querystring, headers):
if 'uploads' in querystring: if 'uploads' in querystring:
for unsup in ('delimiter', 'prefix', 'max-uploads'): for unsup in ('delimiter', 'max-uploads'):
if unsup in querystring: if unsup in querystring:
raise NotImplementedError("Listing multipart uploads with {} has not been implemented yet.".format(unsup)) raise NotImplementedError("Listing multipart uploads with {} has not been implemented yet.".format(unsup))
multiparts = list(self.backend.get_all_multiparts(bucket_name).values()) multiparts = list(self.backend.get_all_multiparts(bucket_name).values())
if 'prefix' in querystring:
prefix = querystring.get('prefix', [None])[0]
multiparts = [upload for upload in multiparts if upload.key_name.startswith(prefix)]
template = self.response_template(S3_ALL_MULTIPARTS) template = self.response_template(S3_ALL_MULTIPARTS)
return 200, headers, template.render( return 200, headers, template.render(
bucket_name=bucket_name, bucket_name=bucket_name,

View File

@ -496,7 +496,7 @@ def test_bucket_key_listing_order():
# Test delimiter with no prefix # Test delimiter with no prefix
delimiter = '/' delimiter = '/'
keys = [x.name for x in bucket.list(prefix=None, delimiter=delimiter)] keys = [x.name for x in bucket.list(prefix=None, delimiter=delimiter)]
keys.should.equal(['toplevel']) keys.should.equal(['toplevel/'])
delimiter = None delimiter = None
keys = [x.name for x in bucket.list(prefix + 'x', delimiter)] keys = [x.name for x in bucket.list(prefix + 'x', delimiter)]

View File

@ -272,7 +272,7 @@ def test_bucket_key_listing_order():
# Test delimiter with no prefix # Test delimiter with no prefix
delimiter = '/' delimiter = '/'
keys = [x.name for x in bucket.list(prefix=None, delimiter=delimiter)] keys = [x.name for x in bucket.list(prefix=None, delimiter=delimiter)]
keys.should.equal(['toplevel']) keys.should.equal(['toplevel/'])
delimiter = None delimiter = None
keys = [x.name for x in bucket.list(prefix + 'x', delimiter)] keys = [x.name for x in bucket.list(prefix + 'x', delimiter)]