Я пытаюсь прочитать конкретный файл из файла tar.gz используя следующий кодпрочитать файл из tar.gz файла в рубин
def get_data_file_file(file, type)
begin
Gem::Package::TarReader.new(Zlib::GzipReader.open(file)).each do |entry|
if(entry.full_name == type)
return entry.read
end
end
rescue Zlib::GzipFile::Error => e
stacktrace = e.backtrace.join("\n")
LOGGER.error("ERROR: #{e.message}\n #{stacktrace}")
return nil
end
return nil
end
Но проблема исходит из размера файла в качестве «входа .read "прочитайте весь файл за один выстрел и сохраните его в памяти.
Кто-нибудь знает о каких-либо альтернативах? Любая помощь приветствуется.
Спасибо. Amit
Спасибо за ответ. Да, я могу использовать предложенный вами метод, но я смотрю, есть ли какая-либо другая библиотека, которая предлагает прочитать сжатый файл по строкам. – Amit