Я использую библиотеку ruby aws / s3 для получения файлов из Amazon S3. Я передаю объект в потоковом режиме и записываю его в файл согласно документации (с отладкой каждые 100 блоков для подтверждения прогресса)
Это работает для небольших файлов, но случайным образом останавливает загрузку больших (150 МБ) файлов в VPS Ubuntu. Извлечение тех же файлов (150 МБ) с моего Mac при гораздо более медленном соединении работает просто отлично.
Когда он зависает, ошибка не выдается, а последней строкой отладочного вывода является 'Finished chunk'. Я видел, как пишется от 100 до 10000 кусков перед замораживанием.
Кто-нибудь сталкивался с этим или есть идеи о том, что может быть причиной?
Спасибо
Код, который висит:
i=1
open(local_file, 'w') do |f|
AWS::S3::S3Object.value(key, @s3_bucket) do |chunk|
puts("Writing chunk #{i}")
f.write chunk.read_body
puts("Finished chunk #{i}")
i=i+1
end
end