增加喷雾罐中的最大内容长度

Increase max-content-length in spray-can

我尝试增加最大内容长度,以便可以将大文件上传到服务器。

我已将此添加到 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"
  )
}

糟糕,配置正确且有效。希望其他有同样问题的人会偶然发现这个 post.

不是spray-can的问题,而是它前面的nginx代理。显然也必须修改 nginx 中的最大内容长度限制。

这是通过在 /etc/nginx/nginx.conf 中添加以下内容来完成的:

http {
    server {
        ...
        client_max_body_size 100M;
        ...
    }
}