2012-04-18 10 views
0

レール内の指定された圧縮されたサイズのzipファイルを作成しますので、私は言った期待しているサーバーにそれを送ることができます記録。 私が持っている問題は、サーバが唯一の所定量よりも小さいファイルを受け入れることができるということです。.. 10メグスは、どのように私は、そのファイルにアップzip形式のXMLに変換する必要があるレコードの山を持って

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ファイルを作成し、引数のために言うことができます..しかし、私ドン私は圧縮されたサイズを得る方法を参照してください。

私は私の出力がどのように大きな伝えることができたら、私はいじくり回すことができるように私は..ジップヘッダとスタッフのためのいくつかのLEA-方法を与えることができます。このクラスのカードには、そのサイズがないように見えるだけです。

注:私はそれが圧縮されたサイズのメソッドを持っているのですが、それはちょうど別のウサギの穴..ネイティブ拡張とそのように私をリードしているためzipRubyをインストールしようとしました。

答えて

0

は申し訳ありませんが、これを行うにはジップライブラリには何も表示されません。できれば

は、考えてみましょう:

  • がzipRubyが
  • はシンプルFile.read文で固定サイズのチャンクに完成したzipファイルを破壊しに戻って一緒にチャンクを入れてコンパイルしてもらうと、さらに押しサーバ。
  • 例えば、追加されたファイルの数を制限することにより、zipファイルのサイズを制限しますファイルサイズの制限を超えるまでファイルを追加し、最後に追加したファイルを削除して新しいzipファイルに追加します。
+0

えええええええええええええええと、 10メガ、よく私は9.5のビルドと私は安全です..しかし、私が持っている問題は、どのように私はレールで圧縮ファイルのサイズを取得します。 – baash05

+0

ファイルをサーバーに戻すことで何を意味するのか不明です。私は、ファイルがどこに行くのシステムを所有していません。 – baash05

+0

zipRubyのアイデアは、おそらく私の最高のオプションですが、私はどこでもタスクを開始するために理解していない。これらの問題については、指導の仕方に少しあるようです。私はそれを読んで続けます.. – baash05