Мне нужно обслуживать некоторые данные из моей базы данных в zip файле, передавая его на лету так, чтобы:
- Я не пишу временный файл на диск
- Я не собираю весь файл в оперативной памяти
Я знаю, что я могу создавать потоковое создание zip файлов в файловой системе, используя ZipOutputStream
как здесь. Я также знаю, что я могу делать потоковый вывод с контроллера rails, установив response_body
в Proc
как здесь. Мне нужно (я думаю) - это способ объединить эти две вещи вместе. Могу ли я сделать рельсы для ответа от ZipOutputStream
? Могу ли я получить ZipOutputStream
, чтобы получить инкрементные куски данных, которые я могу передать в мой response_body
Proc
? Или есть другой способ?