mirror of
https://github.com/TheAnachronism/docspell.git
synced 2025-06-22 10:28:27 +00:00
Use temporary files when receiving large data
This commit is contained in:
@ -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",
|
||||||
@ -93,4 +100,5 @@ object UploadRoutes {
|
|||||||
res <- Ok(basicResult(result))
|
res <- Ok(basicResult(result))
|
||||||
} yield res
|
} yield res
|
||||||
}
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user