added silent mode to the block data transfer API
This commit is contained in:
parent
2431f43f73
commit
6e57bb53e2
|
|
@ -15,17 +15,12 @@
|
|||
<q-btn class="btn q-ma-xs" flat label="DOWNLOAD" @click="DownloadFile"></q-btn>
|
||||
<q-btn class="btn q-ma-xs" flat label="UPLOAD" @click="UploadFile"></q-btn>
|
||||
<q-btn class="btn q-ma-xs" flat label="DELETE" @click="DeleteFile"></q-btn>
|
||||
|
||||
<q-btn class="btn q-ma-xs" flat label="GET ART" @click="GetArtnetTest"></q-btn>
|
||||
<q-btn class="btn q-ma-xs" flat label="PUT ART" @click="PutArtnetTest"></q-btn>
|
||||
|
||||
</div>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import { GetArtnetTest, PutArtnetTest } from "assets/dimmer"
|
||||
import { computed, onUnmounted, reactive, onMounted, ref } from "vue";
|
||||
import { GetBlockObject, PutBlockObject, PostData } from "components/webguicomp//network";
|
||||
import { useQuasar, Dialog } from 'quasar';
|
||||
|
|
@ -66,13 +61,13 @@ async function DownloadFile() {
|
|||
if (selected.value[0]) {
|
||||
const buf = new Uint8Array(selected.value[0].size);
|
||||
//await ReveiveFileChunks(buf);
|
||||
await GetBlockObject('file_block', selected.value[0].name, selected.value[0].size, buf);
|
||||
await GetBlockObject('file_block', selected.value[0].name, selected.value[0].size, buf, true);
|
||||
SaveFile(buf, selected.value[0].name);
|
||||
}
|
||||
}
|
||||
|
||||
async function SendFile(buf) {
|
||||
await PutBlockObject('file_block', file.value.name, file.value.size, buf);
|
||||
await PutBlockObject('file_block', file.value.name, file.value.size, buf, true);
|
||||
PostData(data, 2, 0, null);
|
||||
}
|
||||
|
||||
|
|
|
|||
34
network.js
34
network.js
|
|
@ -33,18 +33,20 @@ function base64ToArrayBuffer(base64) {
|
|||
return bytes;
|
||||
}
|
||||
|
||||
async function GetBlockObject(namespase, name, size, buf) {
|
||||
async function GetBlockObject(namespase, name, size, buf, verb) {
|
||||
let partsnum = Math.floor(size / BLOCK_SIZE);
|
||||
if (size % BLOCK_SIZE)
|
||||
partsnum++;
|
||||
console.log(`Found ${partsnum} blocks in file ${name}`)
|
||||
let i;
|
||||
let resp;
|
||||
const dialog = Dialog.create({ message: `File "${name}" download 0%`, progress: true, persistent: true, ok: false, style: 'border: none; box-shadow: none;' })
|
||||
let resp, dialog;
|
||||
if (verb)
|
||||
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++) {
|
||||
resp = await ReceiveChunk(i, partsnum, name, namespase);
|
||||
if (typeof resp[namespase] === 'string' || resp[namespase] instanceof String) {
|
||||
dialog.hide();
|
||||
if (verb)
|
||||
dialog.hide();
|
||||
Notify.create({ color: "negative", position: "top", message: resp[namespase], icon: "report_problem", });
|
||||
return;
|
||||
}
|
||||
|
|
@ -52,9 +54,11 @@ async function GetBlockObject(namespase, name, size, buf) {
|
|||
let decoded = base64ToArrayBuffer(resp[namespase].dat);
|
||||
for (let k = 0; k < decoded.byteLength; k++)
|
||||
buf[i * BLOCK_SIZE + k] = decoded[k];
|
||||
dialog.update({ message: `File "${name}" download ${Math.floor(i * 100 / partsnum)}%` })
|
||||
if (verb)
|
||||
dialog.update({ message: `File "${name}" download ${Math.floor(i * 100 / partsnum)}%` })
|
||||
}
|
||||
dialog.hide();
|
||||
if (verb)
|
||||
dialog.hide();
|
||||
}
|
||||
|
||||
function ToBase64(bytes) {
|
||||
|
|
@ -82,7 +86,7 @@ function SendChunk(cur, total, name, namespase, buf) {
|
|||
part: cur,
|
||||
parts: total,
|
||||
mem_object: name,
|
||||
size: length,
|
||||
size: arr.byteLength,
|
||||
dat: encode
|
||||
}
|
||||
};
|
||||
|
|
@ -92,24 +96,28 @@ function SendChunk(cur, total, name, namespase, buf) {
|
|||
})
|
||||
}
|
||||
|
||||
async function PutBlockObject(namespase, name, size, buf) {
|
||||
async function PutBlockObject(namespase, name, size, buf, verb) {
|
||||
let partsnum = Math.floor(size / BLOCK_SIZE);
|
||||
if (size % BLOCK_SIZE)
|
||||
partsnum++;
|
||||
console.log(`Found ${partsnum} blocks in file`)
|
||||
let i;
|
||||
let resp;
|
||||
const dialog = Dialog.create({ message: `File "${name}" upload 0%`, progress: true, persistent: true, ok: false, style: 'border: none; box-shadow: none;' })
|
||||
let resp, dialog;
|
||||
if (verb)
|
||||
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++) {
|
||||
resp = await SendChunk(i, partsnum, name, namespase, buf);
|
||||
if (typeof resp[namespase] === 'string' || resp[namespase] instanceof String) {
|
||||
dialog.hide();
|
||||
if (verb)
|
||||
dialog.hide();
|
||||
Notify.create({ color: "negative", position: "top", message: resp[namespase], icon: "report_problem", });
|
||||
return;
|
||||
}
|
||||
dialog.update({ message: `File "${name}" upload ${Math.floor(i * 100 / partsnum)}%` })
|
||||
if (verb)
|
||||
dialog.update({ message: `File "${name}" upload ${Math.floor(i * 100 / partsnum)}%` })
|
||||
}
|
||||
dialog.hide();
|
||||
if (verb)
|
||||
dialog.hide();
|
||||
}
|
||||
|
||||
function PostDataControlled(varlist, messtype, applytype, onfinished, enable) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user