我有一个 Ruby 程序,它使用rubyzip gem 压缩 XML 文件的目录树。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。
我在rubyzip 文档中找不到为创建的 ZIP 文件指定压缩级别的方法。
有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的 Ruby 库?
我有一个 Ruby 程序,它使用rubyzip gem 压缩 XML 文件的目录树。我的问题是文件开始变得很重,我想提高压缩级别,因为压缩时间不是问题。
我在rubyzip 文档中找不到为创建的 ZIP 文件指定压缩级别的方法。
有人知道如何更改此设置吗?是否有另一个允许指定压缩级别的 Ruby 库?
这是我通过查看 rubyzip 内部创建的代码。
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”程序或不进行压缩的方法,您可能会获得更好的牵引力。