diff --git a/src/leap/soledad/client/_db/blobs/sql.py b/src/leap/soledad/client/_db/blobs/sql.py index 6b92c5039369ac8a78b723b33fd230124d141fef..a192ae1ec4b64e1cb702de0ce1e4821d574101bd 100644 --- a/src/leap/soledad/client/_db/blobs/sql.py +++ b/src/leap/soledad/client/_db/blobs/sql.py @@ -217,6 +217,20 @@ class SQLiteBlobBackend(object): else: defer.returnValue([]) + @defer.inlineCallbacks + def get_size_list(self, blob_ids, namespace=''): + query = 'SELECT BLOB_ID, LENGTH(PAYLOAD) FROM BLOBS WHERE BLOB_ID IN ' + query += ('(%s)' % ', '.join(['?' for _ in blob_ids])) + query += ' AND NAMESPACE = ? ORDER BY BLOB_ID' + values = tuple(blob_ids) + (namespace,) + results = yield self.dbpool.runQuery(query, values) + if results: + results = dict([(result[0], result[1]) for result in results]) + results = [(blob_id, results[blob_id]) for blob_id in blob_ids] + defer.returnValue(results) + else: + defer.returnValue([]) + @defer.inlineCallbacks def exists(self, blob_id, namespace=''): query = 'SELECT blob_id from blobs WHERE blob_id = ? AND namespace= ?'