PHP实现大量数据的后端压缩与打包下载

遇到了一个需要打包下载图片的需求.图片的规模应该在x10的5次方左右,整体体积应该在数GB.如果直接先压缩,然后返回一个地址让客户端去下载,中间必定会出现一个很长时间的一个操作空白期,同时还无法保证这个空白期用户会不会关掉连接.所以考虑使用一遍压缩一遍下载的方案(流式下载),虽然牺牲掉了显示进度的功能,但是至少不会出现一个很长时间的空白时间段.

类似的功能例如phpmyadmin的导出(这个没有压缩,我已经能实现了),GitHub的仓库的打包下载(确定有压缩,考虑到他在下载的时候也不知道最终体积,所以考虑是实现了流式压缩下载)

网上搜过一些相关的资料,不过大多都是先压缩后下载的方案,在大数据量下估计是没法用.

想问一下有没有哪位大佬做过类似功能,能帮忙讲解一下算法或者提供几个关键词好让我去搜索一波.

目前使用的关键词:php zip 流式 下载 压缩


慕沐林林
浏览 1303回答 2
2回答

肥皂起泡泡

已经解决了,用的是从PHPmyadmin中抠出来的一个叫ZipFile的类。

慕尼黑8549860

有个问题,你的下载是很多人一起下载吗?还是只有几个人?很多人的情况下,你这个方法会出问题的:每个用户下载会占用一个进程,你同时下载的用户有多少?你又给PHP-fpm开了几个进程?如果进程跑满了,其他人这时候都只能等待
打开App,查看更多内容
随时随地看视频慕课网APP