added namespase to block data api

This commit is contained in:
Bogdan Pilyugin 2024-03-28 12:58:47 +02:00
parent 3814931c61
commit 121a8a1def
2 changed files with 11 additions and 10 deletions

View File

@ -61,13 +61,13 @@ async function DownloadFile() {
if (selected.value[0]) { if (selected.value[0]) {
const buf = new Uint8Array(selected.value[0].size); const buf = new Uint8Array(selected.value[0].size);
//await ReveiveFileChunks(buf); //await ReveiveFileChunks(buf);
await GetBlockObject(selected.value[0].name, selected.value[0].size, buf); await GetBlockObject('file_block', selected.value[0].name, selected.value[0].size, buf);
SaveFile(buf, selected.value[0].name); SaveFile(buf, selected.value[0].name);
} }
} }
async function SendFile(buf) { async function SendFile(buf) {
await PutBlockObject(file.value.name, file.value.size, buf); await PutBlockObject('file_block', file.value.name, file.value.size, buf);
PostData(data, 2, 0, null); PostData(data, 2, 0, null);
} }

View File

@ -7,9 +7,9 @@ const SHA256_HMAC_KEY = "mykey";
let MessIdCounter = 1; let MessIdCounter = 1;
const BLOCK_SIZE = 5120; const BLOCK_SIZE = 5120;
function ReceiveChunk(cur, total, name) { function ReceiveChunk(cur, total, name, namespase) {
let data = { let data = {
file_block: { [namespase]: {
opertype: 1, opertype: 1,
part: cur, part: cur,
parts: total, parts: total,
@ -33,7 +33,7 @@ function base64ToArrayBuffer(base64) {
return bytes; return bytes;
} }
async function GetBlockObject(name, size, buf) { async function GetBlockObject(namespase, name, size, buf) {
let partsnum = Math.floor(size / BLOCK_SIZE); let partsnum = Math.floor(size / BLOCK_SIZE);
if (size % BLOCK_SIZE) if (size % BLOCK_SIZE)
partsnum++; partsnum++;
@ -42,7 +42,7 @@ async function GetBlockObject(name, size, buf) {
let resp; let resp;
const dialog = Dialog.create({ message: `File "${name}" download 0%`, progress: true, persistent: true, ok: false, style: 'border: none; box-shadow: none;' }) const dialog = Dialog.create({ message: `File "${name}" download 0%`, progress: true, persistent: true, ok: false, style: 'border: none; box-shadow: none;' })
for (i = 0; i < partsnum; i++) { for (i = 0; i < partsnum; i++) {
resp = await ReceiveChunk(i, partsnum, name); resp = await ReceiveChunk(i, partsnum, name, namespase);
if (typeof resp.file_block === 'string' || resp.file_block instanceof String) { if (typeof resp.file_block === 'string' || resp.file_block instanceof String) {
dialog.hide(); dialog.hide();
Notify.create({ color: "negative", position: "top", message: resp.file_block, icon: "report_problem", }); Notify.create({ color: "negative", position: "top", message: resp.file_block, icon: "report_problem", });
@ -66,7 +66,7 @@ function ToBase64(bytes) {
return window.btoa(binary); return window.btoa(binary);
} }
function SendChunk(cur, total, name, buf) { function SendChunk(cur, total, name, namespase, buf) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
let arr; let arr;
if (cur == (total - 1)) if (cur == (total - 1))
@ -75,8 +75,9 @@ function SendChunk(cur, total, name, buf) {
arr = new Uint8Array(buf, cur * BLOCK_SIZE, BLOCK_SIZE); arr = new Uint8Array(buf, cur * BLOCK_SIZE, BLOCK_SIZE);
let encode = ToBase64(arr); let encode = ToBase64(arr);
let length = encode.length; let length = encode.length;
let data = { let data = {
file_block: { [namespase]: {
opertype: 3, opertype: 3,
part: cur, part: cur,
parts: total, parts: total,
@ -91,7 +92,7 @@ function SendChunk(cur, total, name, buf) {
}) })
} }
async function PutBlockObject(name, size, buf) { async function PutBlockObject(namespase, name, size, buf) {
let partsnum = Math.floor(size / BLOCK_SIZE); let partsnum = Math.floor(size / BLOCK_SIZE);
if (size % BLOCK_SIZE) if (size % BLOCK_SIZE)
partsnum++; partsnum++;
@ -100,7 +101,7 @@ async function PutBlockObject(name, size, buf) {
let resp; let resp;
const dialog = Dialog.create({ message: `File "${name}" upload 0%`, progress: true, persistent: true, ok: false, style: 'border: none; box-shadow: none;' }) const dialog = Dialog.create({ message: `File "${name}" upload 0%`, progress: true, persistent: true, ok: false, style: 'border: none; box-shadow: none;' })
for (i = 0; i < partsnum; i++) { for (i = 0; i < partsnum; i++) {
resp = await SendChunk(i, partsnum, name, buf); resp = await SendChunk(i, partsnum, name, namespase, buf);
if (typeof resp.file_block === 'string' || resp.file_block instanceof String) { if (typeof resp.file_block === 'string' || resp.file_block instanceof String) {
dialog.hide(); dialog.hide();
Notify.create({ color: "negative", position: "top", message: resp.file_block, icon: "report_problem", }); Notify.create({ color: "negative", position: "top", message: resp.file_block, icon: "report_problem", });