На бакете S3 находится сжатый файл размером до 20 ГБ, сжатый Zstd. Расжатый контент представляет из себя крупный лог файл (текстовый), который нужно обработать построчно.
Можно ли читать поблочно?
Идеально, если можно использовать как экземпляр от класса File, который умеет читать файл построчно.
Тогда можно просто читать:
file.each_line do |line|
process line
end
Необходимо наиболее эффективно (с точки зрения использования CPU/Mem/Disk/Net) читать файл.
Среда исполнения: Линукс. Рассматривается Docker, так что можно потенциально включить необходимое ПО.
Добавлено
Скачивать файл на локальную файловую систему может быть долго. Может, можно считывать напрямую с S3?