curl -vk -H 'Transfer-Encoding: chunked' -H 'Content-Type: application/octet-stream' -H 'filename: some.png' -d @some.png -X PUT http://localhost:8080/someendpoint
Я хочу собрать данные, отправленные вышеупомянутым запросом, используя Akka-HTTP и Akka-streams.
Когда я использую директиву extractDataBytes
, происходит сбой с java.lang.IllegalStateException: Substream Source cannot be materialized more than once
.
(pathPrefix("someendpoint") & put) {
withoutSizeLimit {
(extractRequestContext & extractDataBytes) { (ctx,bytes) =>
implicit val materializer: Materializer = ctx.materializer
val collectBytes = bytes.runFold(ByteString.empty) { case (acc, i) => acc ++ i }
.onComplete(collectBytes) { s => complete("Finished collecting data:" + s.toString) }
}
}
Я хочу byteString
из File
, когда я делаю частичный запрос.