注意点:
- zuul 中默认的文件上传大小为 1M
- nginx 中默认的文件上传大小为 1M
相关问题
场景1:
如果只需要上传1M及以下的文件, 当我们在发送上传图片的请求是会出现以下异常。
解决:
在
gateway.yml
对该service
的route
进行处理
zuul:
routes:
app-demo:
path: /app-demo/**
url: http://app-demo:8080
##改为
zuul:
routes:
app-demo:
path: /app-demo/**
serviceId: appDemoUploadImage
appDemoUploadImage:
ribbon:
NIWSServerListClassName: com.netflix.loadbalancer.ConfigurationBasedServerList
listOfServers: http://app-demo:8080
场景2:
如果上传图片大于 1M,那么需要
- 在 nginx 中配置
client_max_body_size xxMB
- 在当前service项目下的
bootstrap.yml
中添加配置信息(一定要在bootstrap.yml
中设置)
spring:
servlet:
multipart:
max-file-size: xxMB
max-request-size: xxMB
- 假如我们的上传接口为
http://localhost:8080/api/upload
,那么我们在上传的时候需要加上/zuul
,即curl -F "photo=@pic.jpg" http://localhost:8080/zuul/api/upload
才能正确的上传成功
场景3:
当上传图片过大时,会出现 timeout 的异常。
解决:在gateway.yml
中添加超时时长设置
command:
default:
execution:
isolation:
thread:
timeoutInMilliseconds: 10000 // 以秒为单位
网友评论