يفرغ روبي زليب بيانات ضخمة
-
26-09-2019 - |
سؤال
أحاول استخدام Zlib :: Deflate.deflate على ملف ضخم (4 عربات). هناك مشاكل واضحة في القيام بذلك ، أولها لا يمكنني تحميل الملف بأكمله في الذاكرة مرة واحدة. ستعمل Zlib :: gzipwriter ، لأنه يعمل مع تيارات ، لكنه ليس ضغط Zlib. أيه أفكار؟
المحلول
يمكنك تجربة إنشاء دفق Zlib :: Deflate وتغذية بياناته من ملفك الكبير التدريجي. Zlib :: Deflate :: Diflate يزعم أن يفعل هذا النوع من الأشياء وراء الكواليس.
سيبدو شيء هكذا:
z = Zlib::Deflate.new
File.open "big_uncompressed_file" do |f|
File.open "big_compressed_file", "w" do |w|
f.each do |str|
w << z.deflate str, Zlib::SYNC_FLUSH
end
end
end
z.finish
z.close
لا تنتمي إلى StackOverflow