我正在尝试使用以下代码从S3下载文件:
wsClient
.url(url)
.withMethod("GET")
.withHttpHeaders(my_headers: _*)
.withRequestTimeout(timeout)
.stream()
.map {
case AhcWSResponse(underlying) =>
underlying.bodyAsBytes
}
运行此命令时,出现以下异常:
akka.stream.StreamLimitReachedException: limit of 13 reached
这是因为我正在使用bodyAsBytes
吗?这个错误是什么意思 ?我还看到了可能与以下警告消息有关的信息:
blockingToByteString is a blocking and unsafe operation!
答案 0 :(得分:0)
由于进入的元素数大于最大值,所以您得到StreamLimitReachedExpcetion。
val MAX_ALLOWED_SIZE = 100
// OK. Future will fail with a `StreamLimitReachedException`
// if the number of incoming elements is larger than max
val limited: Future[Seq[String]] =
mySource.limit(MAX_ALLOWED_SIZE).runWith(Sink.seq)
// OK. Collect up until max-th elements only, then cancel upstream
val ignoreOverflow: Future[Seq[String]] =
mySource.take(MAX_ALLOWED_SIZE).runWith(Sink.seq)
您可以找到有关流式处理here
的更多信息