From c3d079de4675b0fceca130ed3c6b8890ec28d873 Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Mon, 27 Nov 2017 13:05:33 -0300 Subject: [feature] adds a stream downloader First version, still missing consumer/producer model and some tweaks, but working. -- Related: #8809 --- src/leap/soledad/client/_db/blobs/__init__.py | 72 +++++++++++++++++++++++++- src/leap/soledad/server/_streaming_resource.py | 9 +++- tests/server/test_blobs_server.py | 20 +++++++ 3 files changed, 98 insertions(+), 3 deletions(-) diff --git a/src/leap/soledad/client/_db/blobs/__init__.py b/src/leap/soledad/client/_db/blobs/__init__.py index ddd22b4b..3daf8d1a 100644 --- a/src/leap/soledad/client/_db/blobs/__init__.py +++ b/src/leap/soledad/client/_db/blobs/__init__.py @@ -23,6 +23,7 @@ from urlparse import urljoin import os import json import base64 +import struct from collections import defaultdict from io import BytesIO @@ -104,6 +105,55 @@ class DecrypterBuffer(object): return self.raw_data, self.raw_data.tell() +class StreamDecrypterBuffer(object): + size_pack = struct.Struct('