w-converhp 2.0.35 → 2.0.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/w-converhp-client.umd.js +2 -2
- package/dist/w-converhp-client.umd.js.map +1 -1
- package/dist/w-converhp-server.umd.js +2 -2
- package/dist/w-converhp-server.umd.js.map +1 -1
- package/docs/WConverhpClient.html +1 -1
- package/docs/WConverhpClient.mjs.html +84 -34
- package/docs/WConverhpServer.html +2 -2
- package/docs/WConverhpServer.mjs.html +131 -304
- package/docs/index.html +1 -1
- package/package.json +1 -1
- package/scla.mjs +3 -0
- package/sclb.mjs +3 -0
- package/sclc.mjs +4 -1
- package/scld.mjs +3 -0
- package/script.txt +4 -4
- package/src/WConverhpClient.mjs +83 -33
- package/src/WConverhpServer.mjs +130 -303
- package/src/checkSlicesHash.mjs +68 -0
- package/src/checkSlicesHash.wk.umd.js +1 -0
- package/src/checkTotalHash.mjs +107 -0
- package/src/checkTotalHash.wk.umd.js +1 -0
- package/src/managerMergeSlices.mjs +82 -0
- package/src/mergeSlices.mjs +31 -0
- package/src/mergeSlices.wk.umd.js +1 -0
- package/test/downloadLargeFile.test.mjs +3 -0
- package/test/executeWithFile.test.mjs +3 -0
- package/test/executeWithU8a.test.mjs +3 -0
- package/test/uploadLargeFile.test.mjs +9 -5
- package/toolg/gDistRollup.mjs +48 -4
- package/src/calcFileHash.mjs +0 -10
- package/src/calcFileHash.wk.umd.js +0 -1
- package/src/mergeFiles.mjs +0 -27
- package/src/mergeFiles.wk.umd.js +0 -1
package/src/WConverhpClient.mjs
CHANGED
|
@@ -164,12 +164,12 @@ function WConverhpClient(opt) {
|
|
|
164
164
|
else if (type === 'slice') {
|
|
165
165
|
urlUse = `${url}slc`
|
|
166
166
|
}
|
|
167
|
-
else if (type === 'upload-
|
|
168
|
-
urlUse = `${url}
|
|
169
|
-
}
|
|
170
|
-
else if (type === 'slice-merge') {
|
|
171
|
-
urlUse = `${url}slcm`
|
|
167
|
+
else if (type === 'upload-controller') {
|
|
168
|
+
urlUse = `${url}ulctr`
|
|
172
169
|
}
|
|
170
|
+
// else if (type === 'slice-merge') {
|
|
171
|
+
// urlUse = `${url}slcm`
|
|
172
|
+
// }
|
|
173
173
|
else if (type === 'download-get-filename') {
|
|
174
174
|
urlUse = `${url}dwgfn`
|
|
175
175
|
}
|
|
@@ -682,11 +682,11 @@ function WConverhpClient(opt) {
|
|
|
682
682
|
let fileTotalHash = await calcHash(bb)
|
|
683
683
|
// console.log(`calc hash for fileTotalSize[${fileTotalSize}] done`, fileTotalHash)
|
|
684
684
|
|
|
685
|
-
//send
|
|
685
|
+
//send check-total-hash
|
|
686
686
|
// console.log(`send check-total-hash...`)
|
|
687
|
-
let
|
|
688
|
-
// console.log('
|
|
689
|
-
//
|
|
687
|
+
let resUpCkt = await send('upload-controller', { mode: 'check-total-hash', fileHash: fileTotalHash, filename: fileTotalName, fileSize: fileTotalSize }, { dataType: 'json' })
|
|
688
|
+
// console.log('resUpCkt', resUpCkt)
|
|
689
|
+
// resUpCkt {
|
|
690
690
|
// path: 'uploadTemp\\2429b7ef08ce6ba9',
|
|
691
691
|
// bAllExist: false,
|
|
692
692
|
// bAllSize: false,
|
|
@@ -702,30 +702,30 @@ function WConverhpClient(opt) {
|
|
|
702
702
|
// }
|
|
703
703
|
|
|
704
704
|
//check
|
|
705
|
-
if (
|
|
705
|
+
if (resUpCkt.bAllHash) {
|
|
706
706
|
// console.log('已有上傳大檔')
|
|
707
707
|
let resMg = {
|
|
708
708
|
filename: fileTotalName,
|
|
709
|
-
path:
|
|
709
|
+
path: resUpCkt.path,
|
|
710
710
|
}
|
|
711
711
|
return resMg
|
|
712
712
|
}
|
|
713
713
|
|
|
714
714
|
//針對伺服器上已有切片檔案計算hash與比對
|
|
715
|
-
if (
|
|
716
|
-
// console.log('receive slks...',
|
|
715
|
+
if (resUpCkt.slks.length > 0) {
|
|
716
|
+
// console.log('receive slks...', resUpCkt.slks[0], size(resUpCkt.slks))
|
|
717
717
|
|
|
718
718
|
//fileSliceHashs
|
|
719
719
|
let fileSliceHashs = []
|
|
720
|
-
// let n = Math.max(
|
|
721
|
-
// let nr = Math.floor(n /
|
|
722
|
-
for (let k = 0; k <
|
|
720
|
+
// let n = Math.max(resUpCkt.slks.length, 1)
|
|
721
|
+
// let nr = Math.floor(n / 100)
|
|
722
|
+
for (let k = 0; k < resUpCkt.slks.length; k++) {
|
|
723
723
|
// if (k % nr === 0) {
|
|
724
|
-
// console.log(`calc hash for slices`, round(k /
|
|
724
|
+
// console.log(`calc hash for slices`, round(k / resUpCkt.slks.length * 100, 1), '%')
|
|
725
725
|
// }
|
|
726
726
|
|
|
727
727
|
//i
|
|
728
|
-
let i =
|
|
728
|
+
let i = resUpCkt.slks[k]
|
|
729
729
|
|
|
730
730
|
//start
|
|
731
731
|
let start = i * sizeSlice
|
|
@@ -749,11 +749,11 @@ function WConverhpClient(opt) {
|
|
|
749
749
|
}
|
|
750
750
|
// console.log('fileSliceHashs', fileSliceHashs)
|
|
751
751
|
|
|
752
|
-
//send
|
|
752
|
+
//send check-slices-hash
|
|
753
753
|
// console.log(`send check-slices-hash...`)
|
|
754
|
-
let
|
|
755
|
-
// console.log('
|
|
756
|
-
//
|
|
754
|
+
let resUpCks = await send('upload-controller', { mode: 'check-slices-hash', fileHash: fileTotalHash, fileSliceHashs }, { dataType: 'json' })
|
|
755
|
+
// console.log('resUpCks', resUpCks)
|
|
756
|
+
// resUpCks {
|
|
757
757
|
// slks: [
|
|
758
758
|
// 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
|
|
759
759
|
// 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
|
|
@@ -763,8 +763,8 @@ function WConverhpClient(opt) {
|
|
|
763
763
|
// ]
|
|
764
764
|
// }
|
|
765
765
|
|
|
766
|
-
//update
|
|
767
|
-
|
|
766
|
+
//update, 伺服器針對各切片計算hash與比對, 回傳resUpCks.slks代表hash一致的切片編號, 非一致hash的切片則須重傳, 尚未傳切片亦須繼續傳
|
|
767
|
+
resUpCkt.slks = resUpCks.slks
|
|
768
768
|
|
|
769
769
|
}
|
|
770
770
|
|
|
@@ -804,7 +804,7 @@ function WConverhpClient(opt) {
|
|
|
804
804
|
for (let i = 0; i < chunkTotal; i++) {
|
|
805
805
|
|
|
806
806
|
//check
|
|
807
|
-
if (
|
|
807
|
+
if (resUpCkt.slks.indexOf(i) >= 0) {
|
|
808
808
|
// console.log('已有上傳切片檔')
|
|
809
809
|
cbProgressSlice({ prog: 100, m: 'upload' }) //直接觸發更新進度
|
|
810
810
|
continue
|
|
@@ -820,7 +820,7 @@ function WConverhpClient(opt) {
|
|
|
820
820
|
let chunk = bb.slice(start, end)
|
|
821
821
|
|
|
822
822
|
//send slice
|
|
823
|
-
let hd = {
|
|
823
|
+
let hd = { //用header傳key與value時, key不分大小寫, 故使用kebabCase
|
|
824
824
|
'chunk-index': i,
|
|
825
825
|
'chunk-total': chunkTotal,
|
|
826
826
|
'package-id': packageId,
|
|
@@ -830,16 +830,66 @@ function WConverhpClient(opt) {
|
|
|
830
830
|
|
|
831
831
|
}
|
|
832
832
|
|
|
833
|
-
//send
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
833
|
+
//send merge-slices-push
|
|
834
|
+
// console.log(`send merge-slices-push...`)
|
|
835
|
+
let resUpMgp = await send('upload-controller', { mode: 'merge-slices-push', fileHash: fileTotalHash, chunkTotal }, { dataType: 'json' })
|
|
836
|
+
// console.log('resUpMgp', resUpMgp)
|
|
837
|
+
|
|
838
|
+
//checkMerging
|
|
839
|
+
let checkMerging = () => {
|
|
840
|
+
let pm = genPm()
|
|
841
|
+
|
|
842
|
+
//queueId
|
|
843
|
+
let queueId = resUpMgp.queueId
|
|
844
|
+
// console.log('queueId', queueId)
|
|
845
|
+
|
|
846
|
+
let t = setInterval(() => {
|
|
847
|
+
|
|
848
|
+
//send merge-slices-get
|
|
849
|
+
// console.log(`send merge-slices-get...`)
|
|
850
|
+
send('upload-controller', { mode: 'merge-slices-get', fileHash: fileTotalHash, filename: fileTotalName, queueId }, { dataType: 'json' })
|
|
851
|
+
.then((res) => {
|
|
852
|
+
// console.log('res', res)
|
|
853
|
+
// res => {
|
|
854
|
+
// queueId,
|
|
855
|
+
// state,
|
|
856
|
+
// filename,
|
|
857
|
+
// path,
|
|
858
|
+
// msg: ...
|
|
859
|
+
// }
|
|
860
|
+
|
|
861
|
+
//check
|
|
862
|
+
if (res.state === 'done') {
|
|
863
|
+
|
|
864
|
+
//cbProgressMerge
|
|
865
|
+
cbProgressMerge({ prog: 100, m: 'download' })
|
|
866
|
+
|
|
867
|
+
//resUpMgr
|
|
868
|
+
let resUpMgr = {
|
|
869
|
+
...res.msg,
|
|
870
|
+
}
|
|
871
|
+
|
|
872
|
+
pm.resolve(resUpMgr)
|
|
873
|
+
}
|
|
874
|
+
|
|
875
|
+
})
|
|
876
|
+
.catch((err) => {
|
|
877
|
+
console.log(err)
|
|
878
|
+
})
|
|
879
|
+
.finally(() => {
|
|
880
|
+
clearInterval(t)
|
|
881
|
+
})
|
|
882
|
+
|
|
883
|
+
}, 2000)
|
|
884
|
+
|
|
885
|
+
return pm
|
|
838
886
|
}
|
|
839
|
-
|
|
887
|
+
|
|
888
|
+
//checkMerging
|
|
889
|
+
let resUpMgr = await checkMerging()
|
|
840
890
|
|
|
841
891
|
// console.log(`upload slice done`)
|
|
842
|
-
return
|
|
892
|
+
return resUpMgr
|
|
843
893
|
}
|
|
844
894
|
|
|
845
895
|
//execute
|