Scala Alpakka和S3截断下载的文件

Scala Alpakka和S3截断下载的文件,scala,amazon-s3,akka,alpakka,Scala,Amazon S3,Akka,Alpakka,我有一段基于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)

我有一段基于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,则文件内容是从开头到中间的。最后一个
是从中间到结尾的。我是否从文件中获取块,但为什么它们似乎没有被流化

不知道发生了什么以及如何修复。我相信这个问题和另一个问题是一样的,不幸的是没有答案


谢谢

我已经找到了解决方案,最后非常清楚

只需更换:
data.map(u.utf8String).runWith(Sink.head).map(Some.apply)

与:
data.map(u.utf8String).runWith(Sink.seq).map(u.mkString).map(Some.apply)

累计文件中的所有块

谢谢

您可以看一下(我是