【Azure APIM】APIM在上传文件的时候,请求的Payload是否有文件大小的限制呢?

问题描述

使用APIM + App Service的架构对外提供服务,其中一个接口为文件上传。在测试的时候,发现上传超过20MB的内容时候就会遇见报错,而不使用APIM时,通过直接访问App Service的上传文件接口(>50MB)也不会遇见这个问题。

 

## APIM返回的错误信息为500: Internal Server error

image

## APIM 执行超时

image

那么,APIM是否会有对上传文件的大小限制呢?

 

问题解答

查看官网文档( API Management 资源限制: https://docs.azure.cn/zh-cn/azure-resource-manager/management/azure-subscription-service-limits?toc=%2Fapi-management%2Ftoc.json&bc=%2Fapi-management%2Fbreadcrumb%2Ftoc.json#azure-api-management-limits ) , 上传文件的大小是没有限制的。

image

所以,以上的测试中,出现大于20MB后久无法完成文件上传的问题,根源可能是与后端服务 App Service的配置或处理能力相关。

  • App Service 有时在上传超过 14MB 的文件时, 会返回 500 或 502 错误,尤其是在 multipart/form-data 上传场景中。
  • App Service 的 Kestrel 服务器默认的 MaxRequestBodySize 和 MultipartBodyLengthLimit 可能需要手动配置为更大的值,例如 200MB 或更高。

为了验证不是APIM本身对上传文件的大小限制,把后端服务修改为Storage Account来进行验证。最后证明APIM对上传文件的大小是没有限制的。

image

随后测试,发现可以上传大于500MB的文件,在59s就可以上传到Storage Account中。

image

【完】

 

注意:虽然APIM对文件上传的大小并没有限制,但由于APIM对请求的超时时间默认是300秒左右,所以如果上传的文件太大就会遇见超时报错。

 

参考资料

posted @ 2025-09-27 16:36  编码者卢布  阅读(12)  评论(0)    收藏  举报