Scala Alpakka和S3截断下载的文件
我有一段基于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)
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)
累计文件中的所有块
谢谢您可以看一下(我是