Ruby Zlib deflate dados maciços
-
26-09-2019 - |
Pergunta
Estou tentando usar o zlib :: deflate.deflate em um arquivo maciço (4 shows). Existem problemas óbvios em fazer isso, o primeiro dos quais não consigo carregar o arquivo inteiro na memória de uma só vez. Zlib :: Gzipwriter funcionaria, pois funciona com fluxos, mas não é a compactação do ZLIB. Alguma ideia?
Solução
Você pode tentar instanciar um zlib :: deflate o fluxo e alimentando os dados de TI do seu grande arquivo. Zlib :: Deflate :: Deflate pretende fazer esse tipo de coisa nos bastidores.
Seria algo assim:
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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow