作者Montals (馒头)
看板java
标题[问题] java 档案 压缩 续传
时间Wed Dec 21 13:34:14 2011
想请教板上的专家一个问题
我现在在做一个 档案 压缩 续传的工具
一般档案续传的方式就是
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
1F:推 zephyrhymn:请问是在什麽样的环境做测试? 12/24 02:55
2F:→ Montals:目前是利用 windows D:/ 做简单的资料 分割 压缩 传输 12/26 11:22