增加喷雾罐中的最大含量

时间:2015-12-04 16:47:49

标签: scala spray spray-can

我尝试增加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"
  )
}

1 个答案:

答案 0 :(得分:2)

我的不好,配置正确且有效。希望其他有同样问题的人会发现这篇文章。

问题不在于喷涂,而是在它前面的nginx代理。显然,还必须修改nginx中的max-content-length限制。

通过将以下内容放入/etc/nginx/nginx.conf

来完成
http {
    server {
        ...
        client_max_body_size 100M;
        ...
    }
}