Ruby zip a stream

Я пытаюсь написать сценарий 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)
}

Как мне достичь того, что я написал как псевдо-рубин в листинге выше?

7
задан Jacob 20 July 2011 в 20:53
поделиться