Распакуйте файл CSV.Zip из S3 в Ruby - PullRequest
0 голосов
/ 04 мая 2020

У меня есть приложение 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
...