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.
@@ -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-check') {
168
- urlUse = `${url}ulck`
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 upload-check
685
+ //send check-total-hash
686
686
  // console.log(`send check-total-hash...`)
687
- let resCk = await send('upload-check', { mode: 'check-total-hash', fileHash: fileTotalHash, fileSize: fileTotalSize }, { dataType: 'json' })
688
- // console.log('resCk', resCk)
689
- // resCk {
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 (resCk.bAllHash) {
705
+ if (resUpCkt.bAllHash) {
706
706
  // console.log('已有上傳大檔')
707
707
  let resMg = {
708
708
  filename: fileTotalName,
709
- path: resCk.path,
709
+ path: resUpCkt.path,
710
710
  }
711
711
  return resMg
712
712
  }
713
713
 
714
714
  //針對伺服器上已有切片檔案計算hash與比對
715
- if (resCk.slks.length > 0) {
716
- // console.log('receive slks...', resCk.slks[0], size(resCk.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(resCk.slks.length, 1)
721
- // let nr = Math.floor(n / 200)
722
- for (let k = 0; k < resCk.slks.length; 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 / resCk.slks.length * 100, 1), '%')
724
+ // console.log(`calc hash for slices`, round(k / resUpCkt.slks.length * 100, 1), '%')
725
725
  // }
726
726
 
727
727
  //i
728
- let i = resCk.slks[k]
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 upload-check
752
+ //send check-slices-hash
753
753
  // console.log(`send check-slices-hash...`)
754
- let resCks = await send('upload-check', { mode: 'check-slices-hash', fileHash: fileTotalHash, fileSliceHashs }, { dataType: 'json' })
755
- // console.log('resCks', resCks)
756
- // resCks {
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
- resCk.slks = resCks.slks
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 (resCk.slks.indexOf(i) >= 0) {
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 slice-merge
834
- let msg = {
835
- 'filename': fileTotalName,
836
- 'chunk-total': chunkTotal,
837
- 'package-id': packageId,
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
- let resMg = await send('slice-merge', msg, { dataType: 'json', cbProgress: cbProgressMerge })
887
+
888
+ //checkMerging
889
+ let resUpMgr = await checkMerging()
840
890
 
841
891
  // console.log(`upload slice done`)
842
- return resMg
892
+ return resUpMgr
843
893
  }
844
894
 
845
895
  //execute