国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

java - 對gzip文件進行流式解壓時,如何解壓出其中某些單獨的數(shù)據(jù)塊中的數(shù)據(jù)?

瀏覽:56日期:2023-11-06 18:09:25

問題描述

場景描述:

現(xiàn)有許多行日志文本,按天壓縮成一個個TB級的gzip文件。使用流對每個壓縮文件的數(shù)據(jù)段進行傳輸然后解壓,對解壓出的文本分詞并索引以后查到這個詞時,定位到這個詞所在的文件和段,再用流傳輸并解壓(實際上是想利用已有的壓縮文件構(gòu)造一個類似ES的搜索引擎)

現(xiàn)在的問題是,因為接收到的不是完整的壓縮文件而是塊狀二進制數(shù)據(jù),所以接收的數(shù)據(jù)由于信息不完全而無法解壓

現(xiàn)在想實現(xiàn)這樣的功能:首先將接收到的流數(shù)據(jù)解壓還原為完整的數(shù)據(jù)(原始日志數(shù)據(jù)以換行符分隔,能得到每段流數(shù)據(jù)壓縮前的文本和對應(yīng)文件的偏移量就好),然后考慮到傳輸和存儲等過程可能使數(shù)據(jù)出錯,所以針對每段數(shù)據(jù)流,在出錯的情況下解壓出盡可能多的數(shù)據(jù)。

部分相關(guān)代碼如下:(改自https://stackoverflow.com/que...)

import zlibimport tracebackCHUNKSIZE=30d = zlib.decompressobj(16 + zlib.MAX_WBITS)f = open(’test.py.gz’,’rb’)buffer = f.read(CHUNKSIZE)i = 0while buffer : i += 1 try:#skip two chunk if i < 3 or i > 4: outstr = d.decompress(buffer) print(’*’*10 + outstr + ’#’*10) except Exception, e:print(traceback.print_exc()) finally:buffer = f.read(CHUNKSIZE)outstr = d.flush()print(outstr)f.close()

當(dāng)i>=3以后,每次循環(huán)均報錯我的結(jié)論是 若流不連續(xù)(跳過接收部分?jǐn)?shù)據(jù)),則之后的數(shù)據(jù)都無法解壓。問題1:如果做到能正確的解壓出收到的每部分?jǐn)?shù)據(jù)?(因為可能牽涉到gzip壓縮的算法和數(shù)據(jù)結(jié)構(gòu),我正在看相關(guān)代碼。如果可以通過追加傳輸頭部的某一chuck或者需要解壓的數(shù)據(jù)的前后某些chuck能解決問題也算可以)問題2:如果不能正確的解壓接收到的每部分?jǐn)?shù)據(jù),那么如何做到解壓出盡可能多的數(shù)據(jù)?

問題解答

回答1:

我覺得可以做一個出錯重新續(xù)傳的功能,傳輸前備份當(dāng)前這一段數(shù)據(jù)流,你得判斷出當(dāng)前傳輸?shù)倪@一段數(shù)據(jù)流是否傳輸完整了。這就要求傳送端和接收端之間的傳輸協(xié)議是你能改動的,出現(xiàn)錯誤就立刻反饋fail給傳輸端,從剛才這段重新續(xù)傳,沒有錯誤就反饋OK,繼續(xù)傳輸下一段。這樣就能保證數(shù)據(jù)的完整性。如果文件太大,可以在內(nèi)存中備份多些數(shù)據(jù)段,做些細(xì)節(jié)性的判斷。

回答2:

不太確定你描述的問題,不過在stackoverflow 有些問答或許有幫助。

How can I decompress a gzip stream with zlib?

Python decompressing gzip chunk-by-chunk

標(biāo)簽: java
主站蜘蛛池模板: 中文字幕一区2区 | 亚洲男人的性天堂 | 美国毛片免费一级 | 国产精品成人观看视频网站 | 欧美成人在线影院 | 国产麻豆一级在线观看 | 国产欧美在线一区二区三区 | 一级黄片一级毛片 | 亚洲综合精品一二三区在线 | 狠狠色综合网站久久久久久久 | 欧美日韩一区二区三区免费不卡 | 国产一级免费视频 | 亚洲午夜网站 | 亚洲无吗视频 | 香港毛片免费观看 | 国产人成午夜免视频网站 | 欧美黄色高清 | 亚洲国产最新在线一区二区 | 99视频在线看 | 国产自线一二三四2021 | 男女福利社 | 亚洲毛片在线 | 美国一级毛片a | 在线观看亚洲免费 | 免费观看一级欧美在线视频 | 伊人色综合久久成人 | 久久99精品久久久久久久不卡 | 精品一区二区三区视频在线观看免 | 看欧美的一级毛片 | 成人高清视频免费观看 | 一级毛片aaa片免费观看 | 国产精品成人亚洲 | 最近免费手机中文字幕3 | 国产高清亚洲 | 毛片在线网站 | 长腿美女被啪的欲仙欲死视频 | 最新国产一区二区精品久久 | 亚洲资源在线 | 视频在线色 | 日本久久久久久久久久 | 亚洲欧美小视频 |