一、通過Zuul上傳文件
如果您使用@EnableZuulProxy,則可以使用代理路徑來上傳文件,只要文件很小,就應該可以工作。對於大文件,在“/ zuul / *”中有一條繞過Spring DispatcherServlet的路徑(以避免多部分處理)。即如果zuul.routes.customers = / customers / **,則可以將大文件發布到“/ zuul / customers / *”。 servlet路徑通過zuul.servletPath外化。如果代理路由引導您通過功能區負載平衡器,例如超大文件還需要提升超時設置。
可以在Zuul配置: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
二、嵌入簡略Zuul
如果您使用@EnableZuulServer(而不是@EnableZuulProxy),您也可以在不使用代理的情況下運行Zuul服務器,或選擇性地切換代理平台的某些部分。您添加到ZuulFilter類型的應用程序的任何bean都將自動安裝,因為它們與@EnableZuulProxy一樣,但沒有自動添加任何代理過濾器。
在這種情況下,通過配置“zuul.routes。*”來指定進入Zuul服務器的路由,但是沒有服務發現和代理服務,所以“serviceId”和“url”設置將被忽略。例如:
application.yml.
zuul: routes: api: /api/**
將“/ api / **”中的所有路徑映射到Zuul過濾器鏈。
將應用程序設置為通用的ZUUL服務器,而無需內置任何反向代理功能。到ZUUL服務器的路由可以通過{@ Link ZuulProperties}(默認情況下沒有)。
三、禁用Zuul過濾器
針對Spring Cloud的Zuul配備了許多在代理和服務器模式下默認啟用的ZuulFilter bean。有關啟用的可能過濾器,請參閱zuul過濾器包。如果你想禁用一個,只需設置zuul.<SimpleClassName>.<filterType> .disable = true。按照慣例,過濾器后面的包是Zuul過濾器類型。例如,要禁用org.springframework.cloud.netflix.zuul.filters.post.SendResponseFilter 需設置 zuul.SendResponseFilter.post.disable = true。
