Исключение Akka Stream при загрузке файла с S3 - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь загрузить файл с 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!

1 Ответ

0 голосов
/ 08 апреля 2020

Вы получаете 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)

Более подробную информацию о процессе потоковой передачи можно получить здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...