У меня есть приложение rails, которое получает файл csv.zip из S3. Есть ли способ для потоковой передачи файла s3 и разархивировать его на лету, используя RubyZip или другой драгоценный камень? Я не хочу загружать весь файл в память.
Я использую блок для загрузки объекта S3. Когда вы передаете блок в #get_object, порции данных выдаются по мере их чтения из сокета.
s3.get_object(bucket: 'bucket-name', key:'object-key')
do |chunk|puts(chunk)
end
Когда я пытаюсь разархивировать чанк с помощью RubyZip, выдается ошибка:
Zip::File.open(chunk) do |zip_file|
zip_file.each do |entry|
puts(entry.get_input_stream.read)
end