Alpakka - ошибка Akka-Http при загрузке файла с последним S3 Connector - PullRequest
0 голосов
/ 31 августа 2018

мы используем последний S3-разъем alpakka для загрузки потока, но он не работает с ошибкой максимальной длины как exceeded content length limit (8388608 bytes)! You can configure this by setting `akka.http.[server|client].parsing.max-content-length` or calling `HttpEntity.withSizeLimit` before materializing the dataBytes stream., поток как источник (загрузка файла с S3) и поток, который обращается к серверу AMQP, используя java amqp-client library, когда мы обрабатываем файл менее 8M, он обрабатывает, но файл большего размера не обрабатывается и выдает ошибку выделено выше.

  • Akka-http не хранит файл в памяти, он передает напрямую источник, нам нужно сначала сохранить файл в памяти, а затем передать его?

  • Это нисходящий поток, т. Е. AMQP, являющийся клиентской библиотекой Java (5.3.0), имеет значение
    В этом выпуске мы используем одно соединение и один канал для кролика
    MQ

    val source = s3Client.download(bucketName, key)._1.
    via(Framing.delimiter(ByteString("\n"), Constant.BYTE_SIZE, 
    true).map(_.utf8String))
    
    val flow = Flow[String].mapAsync(
    //Calling future of posting message to rabbit MQ
    
    Future {
    //Rabbit MQ config Properties
    rabbitMQChannel.basicPublish(exchangeName, routingKey, amqpProperties, 
    message.toString.getBytes)
    }
    
    )     
    val result = source.via(flow).runWith(Sink.ignore)
    
...