[問題] java 檔案 壓縮 續傳
想請教板上的專家一個問題
我現在在做一個 檔案 壓縮 續傳的工具
一般檔案續傳的方式就是
local server
原始檔案大小 10000kB 已經上傳 5000kB
這時候中斷此連線
下次開始續傳
local 端就會從檔案的第5001kB開始上傳檔案到server端,上傳至10000kB時
就完成一次的檔案續傳功能
---------------------------------------------------------------
現在我在做的是 原始檔案必須壓縮後,在上傳 但我也想做有續傳的功能
我使用的是 java 的 deflater (壓縮) 以及 inflater(解壓縮)
設計邏輯是 我切割每一塊的壓縮block為 1024k
每讀localFile 1024k後就丟進去 deflater做壓縮, 壓完及上傳至server
我現在會記錄我localFile讀了幾塊,且這幾塊total壓縮完的size是多少
舉例來說: 我localFile讀了5塊(1024*5=5120),這五塊total壓縮完的size為 1155
那這時候連線斷了, 我下次開始續傳就是從localFile的5120開始讀下一塊
然後壓縮出來的檔案就會從remoteFile的第1155開始往後寫,
問題就出在這來,這樣連接起來的壓縮檔雖然可以順,但是檔案大小就是會有異常?
異常指得是跟單一次執行一次把10000kB切割解壓後上傳的size會不一樣!
想請問板上的大家,我這種需要 分塊 壓縮 再上傳並支援續傳的寫法是不是哪裡出了問題?
謝謝喔!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 211.72.248.50
推
12/24 02:55, , 1F
12/24 02:55, 1F
→
12/26 11:22, , 2F
12/26 11:22, 2F