zip ruby には buffer モードが有る。 zipruby をそのまま使うと、一時ファイルを作って出力先にzip を用意しなくちゃいけないので、tmpfile などと組み合わせる必要がるけど、変数だけでメモリ内部でぱぱっと作れないのか調べた。 ruby-zip-in-memory-sample.rb #!/usr/bin/env ruby # require 'zipruby' zip_bin = '' # ここにzipのバイナリが入ってくる Zip::Archive.open_buffer(zip_bin){|ar| ar.add_buffer('sample.txt', "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\n") } ## 確認用にファイルに書き出す。 open('out.zip','w'){|f| f.write zip_bin } 実際に使って