У меня есть простой кусок кода, основанный на примерах alpakka, который должен загрузить некоторый файл из S3 для дальнейшей обработки:
S3.download(bucket, file)
.runWith(Sink.head)
.flatMap {
case Some((data, _)) =>
data.map(_.utf8String).runWith(Sink.head).map(Some.apply)
case None =>
Future.successful(None)
}
Проблема в том, что содержимое файла усекается, размер файла из ObjectMetadata
правильно, он имеет ~ 2M, это не большой файл.
Что я заметил, так это то, что когда я использую Sink.head
, содержимое файла находится от начала до середины, если я изменяю его на Sink.last
, это от середины до конца. Получаю ли я чанки из файла, но почему они не отображаются в потоке?
Не могу понять, что происходит и как это исправить. Я считаю, что проблема такая же, как и этот вопрос , к сожалению, без ответов.
Спасибо