XML に変換してファイルに圧縮する必要があるレコードの山があるので、そのレコードを期待しているサーバーに送信できます。私が抱えている問題は、サーバーが特定の量よりも小さいファイルしか受け入れることができないということです..議論のために10メガとしましょう
require 'zip/zip'
Zip::ZipOutputStream.open("tmp/myfile_#{Process.pid}.zip") do |zos|
i_xml.each_with_index do |xml, index|
zos.put_next_entry("#{index}.xml")
zos << xml
end
end
上記のコードはzipファイルを完全に作成します..しかし、圧縮サイズを取得する方法がわかりません。
zip ヘッダーなどにいくらか余裕を持たせることができます。ですから、出力の大きさがわかれば、いじくり回すことができます。このクラスのカードにはサイズがないようです。
注: zipRuby には圧縮サイズ メソッドがあるため、インストールしようとしましたが、それは別のウサギの穴につながるだけです..ネイティブ拡張機能など。