PHP:在中间服务器上即时压缩文件流,而不存储(太多)数据

时间:2015-04-17 12:53:51

标签: php stream zip proc-open

相关:

我正在寻找其他主题中描述的方法组合。我可能需要读取文件(来自URL) in small chunks ,将这些文件传输到proc_open zip命令的STDIN中,获取输出并将其刷新到客户端。

我需要做什么:

  • 从存储服务器的URL中读取文件流
  • 在网络服务器上随意拉链
  • 使用未知大小的内容处理(毕竟它是一个流)将其作为下载到Web浏览器。

我不能做的事情:

  • 将文件存储在网络服务器上
  • 在存储服务器上运行代码
  • 使用大量内存
  • 让客户端等待下载

因此,当远程块读取仍在进行时,需要启动数据刷新。

这可能在PHP中实现吗?我觉得在提供更多回调/异步功能的语言中会更容易,但在这种情况下我会遇到PHP。

非常欢迎任何示例或一些粗略的代码!

1 个答案:

答案 0 :(得分:0)

它不是PHP,但这个项目完全符合您的需求。您可以将其作为独立服务器托管,并从php中调用它:

https://github.com/scosman/zipstreamer