From d4055f6ef5276dd7eb7af4e678a2d4815a550c25 Mon Sep 17 00:00:00 2001 From: yflory Date: Mon, 30 Nov 2020 14:40:07 +0100 Subject: [PATCH] Improve blob cache --- www/common/inner/cache.js | 6 +++--- www/common/inner/common-mediatag.js | 4 ++-- www/common/outer/upload.js | 14 ++++++++++---- www/common/sframe-common-outer.js | 5 +++-- 4 files changed, 18 insertions(+), 11 deletions(-) diff --git a/www/common/inner/cache.js b/www/common/inner/cache.js index f14890797..7db9635b4 100644 --- a/www/common/inner/cache.js +++ b/www/common/inner/cache.js @@ -8,15 +8,15 @@ define([ var e = err || (data && data.error); if (e) { return void cb(e); } if (!data || typeof(data) !== "object") { return void cb('EINVAL'); } - var arr = Object.keys(data).map(function (i) { return data[i]; }); - var u8 = Uint8Array.from(arr); + var u8 = Uint8Array.from(data); cb(null, u8); }); }; var setBlobCache = function (id, u8, cb) { + var array = [].slice.call(u8); sframeChan.query('Q_SET_BLOB_CACHE', { id: id, - u8: u8 + u8: array }, function (err, data) { var e = err || (data && data.error) || undefined; cb(e); diff --git a/www/common/inner/common-mediatag.js b/www/common/inner/common-mediatag.js index 86900f5bb..72cb1e37b 100644 --- a/www/common/inner/common-mediatag.js +++ b/www/common/inner/common-mediatag.js @@ -24,8 +24,8 @@ define([ }); Messages.mediatag_saveButton = "Save"; // XXX MediaTag.setDefaultConfig('download', { - text: Messages.download_mt_button, - textDl: Messages.mediatag_saveButton + text: Messages.mediatag_saveButton, + textDl: Messages.download_mt_button, }); } MT.MediaTag = MediaTag; diff --git a/www/common/outer/upload.js b/www/common/outer/upload.js index 62f305612..7115b5d4e 100644 --- a/www/common/outer/upload.js +++ b/www/common/outer/upload.js @@ -1,9 +1,11 @@ define([ '/file/file-crypto.js', '/common/common-hash.js', + '/common/common-util.js', + '/common/outer/cache-store.js', '/bower_components/nthen/index.js', '/bower_components/tweetnacl/nacl-fast.min.js', -], function (FileCrypto, Hash, nThen) { +], function (FileCrypto, Hash, Util, Cache, nThen) { var Nacl = window.nacl; var module = {}; @@ -31,9 +33,11 @@ define([ }; var actual = 0; + var encryptedArr = [];; var again = function (err, box) { if (err) { onError(err); } if (box) { + encryptedArr.push(box); actual += box.length; var progressValue = (actual / estimate * 100); progressValue = Math.min(progressValue, 100); @@ -55,9 +59,11 @@ define([ var uri = ['', 'blob', id.slice(0,2), id].join('/'); console.log("encrypted blob is now available as %s", uri); - - - cb(); + var box_u8 = Util.uint8ArrayJoin(encryptedArr); + Cache.setBlobCache(id, box_u8, function (err) { + if (err) { console.warn(err); } + cb(); + }); }); }; diff --git a/www/common/sframe-common-outer.js b/www/common/sframe-common-outer.js index 12327c720..49d52c37b 100644 --- a/www/common/sframe-common-outer.js +++ b/www/common/sframe-common-outer.js @@ -683,12 +683,13 @@ define([ sframeChan.on('Q_GET_BLOB_CACHE', function (data, cb) { Utils.Cache.getBlobCache(data.id, function (err, obj) { if (err) { return void cb({error: err}); } - cb(obj); + var arr = [].slice.call(obj); + cb(arr); }); }); sframeChan.on('Q_SET_BLOB_CACHE', function (data, cb) { if (!data || !data.u8 || typeof(data.u8) !== "object") { return void cb({error: 'EINVAL'}); } - var arr = Object.keys(data.u8).map(function (i) { return data.u8[i]; }); + var arr = data.u8; var u8 = Uint8Array.from(arr); Utils.Cache.setBlobCache(data.id, u8, function (err) { if (err) { return void cb({error: err}); }