鍍金池/ 問答/人工智能  PHP  網(wǎng)絡(luò)安全/ PHP實(shí)現(xiàn)大量數(shù)據(jù)的后端壓縮與打包下載

PHP實(shí)現(xiàn)大量數(shù)據(jù)的后端壓縮與打包下載

遇到了一個(gè)需要打包下載圖片的需求.圖片的規(guī)模應(yīng)該在x10的5次方左右,整體體積應(yīng)該在數(shù)GB.如果直接先壓縮,然后返回一個(gè)地址讓客戶端去下載,中間必定會(huì)出現(xiàn)一個(gè)很長(zhǎng)時(shí)間的一個(gè)操作空白期,同時(shí)還無(wú)法保證這個(gè)空白期用戶會(huì)不會(huì)關(guān)掉連接.所以考慮使用一遍壓縮一遍下載的方案(流式下載),雖然犧牲掉了顯示進(jìn)度的功能,但是至少不會(huì)出現(xiàn)一個(gè)很長(zhǎng)時(shí)間的空白時(shí)間段.

類似的功能例如phpmyadmin的導(dǎo)出(這個(gè)沒有壓縮,我已經(jīng)能實(shí)現(xiàn)了),GitHub的倉(cāng)庫(kù)的打包下載(確定有壓縮,考慮到他在下載的時(shí)候也不知道最終體積,所以考慮是實(shí)現(xiàn)了流式壓縮下載)

網(wǎng)上搜過一些相關(guān)的資料,不過大多都是先壓縮后下載的方案,在大數(shù)據(jù)量下估計(jì)是沒法用.

想問一下有沒有哪位大佬做過類似功能,能幫忙講解一下算法或者提供幾個(gè)關(guān)鍵詞好讓我去搜索一波.

目前使用的關(guān)鍵詞:php zip 流式 下載 壓縮

回答
編輯回答
使勁操

已經(jīng)解決了,用的是從PHPmyadmin中摳出來(lái)的一個(gè)叫ZipFile的類。

2018年1月11日 21:03
編輯回答
我甘愿

有個(gè)問題,你的下載是很多人一起下載嗎?還是只有幾個(gè)人?
很多人的情況下,你這個(gè)方法會(huì)出問題的:
每個(gè)用戶下載會(huì)占用一個(gè)進(jìn)程,你同時(shí)下載的用戶有多少?你又給PHP-fpm開了幾個(gè)進(jìn)程?如果進(jìn)程跑滿了,其他人這時(shí)候都只能等待

2017年6月9日 14:32