Small refactor on list uploads
The filter to drop the segments from object list is confusable a bit because the filter result is assigned to the same name (i.e. "objects") even though it is an upload id subset of the objects. This patch refactors a bit to be the meaning more clear. Change-Id: I73a49cca2e084cd13c8c10555e17351af8669af9
This commit is contained in:
@@ -141,13 +141,6 @@ class UploadsController(Controller):
|
|||||||
"""
|
"""
|
||||||
Handles List Multipart Uploads
|
Handles List Multipart Uploads
|
||||||
"""
|
"""
|
||||||
pattern = re.compile('/[0-9]+$')
|
|
||||||
|
|
||||||
def filter_max_uploads(o):
|
|
||||||
if 'name' not in o:
|
|
||||||
return False
|
|
||||||
else:
|
|
||||||
return pattern.search(o['name']) is None
|
|
||||||
|
|
||||||
encoding_type = req.params.get('encoding-type')
|
encoding_type = req.params.get('encoding-type')
|
||||||
if encoding_type is not None and encoding_type != 'url':
|
if encoding_type is not None and encoding_type != 'url':
|
||||||
@@ -177,23 +170,27 @@ class UploadsController(Controller):
|
|||||||
resp = req.get_response(self.app, container=container, query=query)
|
resp = req.get_response(self.app, container=container, query=query)
|
||||||
objects = json.loads(resp.body)
|
objects = json.loads(resp.body)
|
||||||
|
|
||||||
objects = filter(filter_max_uploads, objects)
|
def object_to_upload(object_info):
|
||||||
|
obj, upid = object_info['name'].rsplit('/', 1)
|
||||||
|
obj_dict = {'key': obj,
|
||||||
|
'upload_id': upid,
|
||||||
|
'last_modified': object_info['last_modified']}
|
||||||
|
return obj_dict
|
||||||
|
|
||||||
if len(objects) > maxuploads:
|
# uploads is a list consists of dict, {key, upload_id, last_modified}
|
||||||
objects = objects[:maxuploads]
|
# Note that pattern matcher willd drop whole segments objects like as
|
||||||
|
# object_name/upload_id/1.
|
||||||
|
pattern = re.compile('/[0-9]+$')
|
||||||
|
uploads = [object_to_upload(obj) for obj in objects if
|
||||||
|
pattern.search(obj.get('name', '')) is None]
|
||||||
|
|
||||||
|
if len(uploads) > maxuploads:
|
||||||
|
uploads = uploads[:maxuploads]
|
||||||
truncated = True
|
truncated = True
|
||||||
else:
|
else:
|
||||||
truncated = False
|
truncated = False
|
||||||
|
|
||||||
uploads = []
|
|
||||||
prefixes = []
|
prefixes = []
|
||||||
for o in objects:
|
|
||||||
obj, upid = o['name'].rsplit('/', 1)
|
|
||||||
uploads.append(
|
|
||||||
{'key': obj,
|
|
||||||
'upload_id': upid,
|
|
||||||
'last_modified': o['last_modified']}
|
|
||||||
)
|
|
||||||
|
|
||||||
nextkeymarker = ''
|
nextkeymarker = ''
|
||||||
nextuploadmarker = ''
|
nextuploadmarker = ''
|
||||||
|
|||||||
Reference in New Issue
Block a user