PHP: сжатие потока файлов на промежуточном сервере без сохранения (слишком большого количества) данных

Связанные с:

Я ищу комбинацию методов, описанных в других темах. Мне, вероятно, нужно прочитать файл (с URL) небольшими порциями, передайте их в STDIN команды proc_open zip, возьмите выходные данные и сбросьте их в сторону клиента.

Что я должен сделать:

  • Чтение потока файлов с URL-адреса с сервера хранения
  • Застегните его на лету на веб-сервере
  • Предложите его для загрузки в веб-браузер, используя контент-расположение с неизвестным размером (в конце концов, это поток).

Что я не могу сделать:

  • Храните файлы на веб-сервере
  • Запустите код на сервере хранения
  • Использовать много памяти
  • Пусть клиент дождется загрузки

Таким образом, сброс данных должен начаться, пока удаленное чтение фрагментов еще продолжается.

Будет ли это возможно в PHP? Я чувствую, что это было бы намного проще в языках, которые предлагают больше функций обратного вызова / асинхронности, но я застрял с PHP в этой ситуации.

Любые примеры или какой-то грубый код будет очень кстати!

2

Решение

Это не PHP, но этот проект делает именно то, что вы ищете. Вы можете разместить его как отдельный сервер и вызывать его с php:

https://github.com/scosman/zipstreamer

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]