9.通过Zuul上传文件

如果您使用@EnableZuulProxy,只要是小文件,您就可以使用代理路径上传文件。而对于大文件,/zuul/*中有一个替代路径可以绕过Spring DispatcherServlet(避免多部分处理)。换句话说,如果您设置了zuul.routes.customers=/customers/**,那么您可以将大文件POST/zuul/customers/*。servlet路径通过zuul.servletPath外部化。如果代理路由通过Ribbon负载均衡,那么大文件也要提高超时配置,如下例所示:

application.yml.

hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 60000
ribbon:
  ConnectTimeout: 3000
  ReadTimeout: 60000

请注意,对于流式处理大文件,您需要在请求中使用分块编码(某些浏览器默认情况下不使用)。如下例所示:

$ curl -v -H "Transfer-Encoding: chunked" \
    -F "file=@mylarge.iso" localhost:9999/zuul/simple/file