rubyzipgemを使用してXMLファイルのディレクトリツリーを圧縮するRubyプログラムがあります。私の問題は、ファイルが重くなり始めていることです。圧縮時間は問題ではないので、圧縮レベルを上げたいと思います。
作成したZIPファイルの圧縮レベルを指定する方法がrubyzipのドキュメントに見つかりませんでした。
この設定を変更する方法を知っている人はいますか?圧縮レベルを指定できる別のRubyライブラリはありますか?
rubyzipgemを使用してXMLファイルのディレクトリツリーを圧縮するRubyプログラムがあります。私の問題は、ファイルが重くなり始めていることです。圧縮時間は問題ではないので、圧縮レベルを上げたいと思います。
作成したZIPファイルの圧縮レベルを指定する方法がrubyzipのドキュメントに見つかりませんでした。
この設定を変更する方法を知っている人はいますか?圧縮レベルを指定できる別のRubyライブラリはありますか?
これが私がrubyzipinternalを見て作成したコードです。
level = Zlib::BEST_COMPRESSION
Zip::ZipOutputStream.open(zip_file) do |zip|
Dir.glob("**/*") do |filename|
entry = Zip::ZipEntry.new("", filename)
entry.gather_fileinfo_from_srcpath(filename)
zip.put_next_entry(entry, nil, nil, Zip::ZipEntry::DEFLATED, level)
entry.get_input_stream { |is| IOExtras.copy_stream(zip, is) }
end
end
'zip'プログラムを呼び出すか、zipを実行しないようにすることで、トラクションが向上する可能性があります。