Я пытаюсь написать сценарий ruby fcgi, который сжимает файлы в каталоге на лету и отправляет выходные данные по блокам в виде ответа http. Очень важно, чтобы это сжатие выполнялось как потоковая операция, иначе клиент получит тайм-аут для огромных каталогов.
У меня есть следующий код:
d="/tmp/delivery/"
# send zip header
header(MimeTypes::ZIP)
# pseudocode from here on
IO.open(d) { |fh|
block=fh.readblock(1024)
#send zipped block as http response
print zip_it(block)
}
Как мне достичь того, что я написал как псевдо-рубин в листинге выше?