我尝试增加max-content-length,以便可以将大文件上传到服务器。
我已将此添加到application.conf
spray.can {
server {
parsing {
max-content-length = 2g
max-chunk-size = 10m
}
}
}
然而,上限似乎仍然是1MB。 我可以确认参数被读取,因为我可以降低上限,它将生效。
应用程序触发响应错误(413 Request Entity Too Large
),我有一个HttpService(接受CORS)和一个如下所示的路径:
val contentRoute =
cors {
pathPrefix(PROJECTS) {
(post & path(Segment / CONTENT)) { (projectId) =>
post {
entity(as[MultipartFormData]) { data =>
complete(StatusCodes.OK)
}
}
}
}
}
是否还有其他我需要调整的偏好,默认情况下也设置为1MB?
更新
这些是依赖版本:
libraryDependencies ++= {
val akkaV = "2.3.9"
val sprayV = "1.3.3"
Seq(
"io.spray" %% "spray-can" % sprayV,
"io.spray" %% "spray-routing" % sprayV,
"io.spray" %% "spray-json" % "1.3.2",
"io.spray" %% "spray-testkit" % sprayV % "test",
"com.typesafe.akka" %% "akka-actor" % akkaV,
"com.typesafe.akka" %% "akka-testkit" % akkaV % "test",
"org.specs2" %% "specs2-core" % "2.3.11" % "test",
"org.mongodb" %% "casbah" % "2.8.2"
)
}
答案 0 :(得分:2)
我的不好,配置正确且有效。希望其他有同样问题的人会发现这篇文章。
问题不在于喷涂,而是在它前面的nginx代理。显然,还必须修改nginx中的max-content-length限制。
通过将以下内容放入/etc/nginx/nginx.conf
:
http {
server {
...
client_max_body_size 100M;
...
}
}