diff options
Diffstat (limited to 'sugar_network/db/blobs.py')
-rw-r--r-- | sugar_network/db/blobs.py | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/sugar_network/db/blobs.py b/sugar_network/db/blobs.py index da06483..a9d66e0 100644 --- a/sugar_network/db/blobs.py +++ b/sugar_network/db/blobs.py @@ -37,8 +37,14 @@ def init(path): os.makedirs(_root) -def post(content, mime_type=None, digest_to_assert=None): - meta = [] +def post(content, mime_type=None, digest_to_assert=None, meta=None): + if meta is None: + meta = [] + meta.append(('content-type', mime_type or 'application/octet-stream')) + else: + meta = meta.items() + if mime_type: + meta.append(('content-type', mime_type)) @contextmanager def write_blob(): @@ -70,7 +76,7 @@ def post(content, mime_type=None, digest_to_assert=None): blob.unlink() raise http.BadRequest('Digest mismatch') path = _path(digest) - meta.append(('content-type', mime_type or 'application/octet-stream')) + meta.append(('content-length', str(blob.tell()))) with toolkit.new_file(path + _META_SUFFIX) as f: for key, value in meta: f.write('%s: %s\n' % (key, value)) |