Use temporary files when receiving large data

This commit is contained in:
eikek
2022-03-18 23:57:36 +01:00
parent cafd3d7f65
commit e3ed0ba24d

View File

@ -20,7 +20,6 @@ import docspell.restserver.http4s.ResponseGenerator
import org.http4s._ import org.http4s._
import org.http4s.circe.CirceEntityEncoder._ import org.http4s.circe.CirceEntityEncoder._
import org.http4s.dsl.Http4sDsl import org.http4s.dsl.Http4sDsl
import org.http4s.multipart.Multipart
import org.log4s._ import org.log4s._
object UploadRoutes { object UploadRoutes {
@ -80,8 +79,16 @@ object UploadRoutes {
): F[Response[F]] = { ): F[Response[F]] = {
import dsl._ import dsl._
val decodeMultipart =
EntityDecoder
.mixedMultipartResource(
maxSizeBeforeWrite = 10 * 1024 * 1024
)
.evalMap(_.decode(req, strict = false).value)
.rethrow
decodeMultipart.use { multipart =>
for { for {
multipart <- req.as[Multipart[F]]
updata <- readMultipart( updata <- readMultipart(
multipart, multipart,
"webapp", "webapp",
@ -94,3 +101,4 @@ object UploadRoutes {
} yield res } yield res
} }
} }
}