У меня есть простой кусок кода, основанный на примерах 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
, то это от середины до конца. Я получаю фрагменты из файла, но почему они не передаются?
Не могу понять, что происходит и как это исправить. Я считаю, что проблема такая же, как и этот другой вопрос, к сожалению без ответов.
Спасибо