Logic App上传大文件至Blob失败,超105MB请求报错求助
先查API服务端的配置:很多服务端框架(比如Spring Boot、ASP.NET)默认会锁死请求/响应的大小上限,不是光客户端开chunked或者改环境变量就能绕过去。比如Spring Boot里的
spring.servlet.multipart.max-file-size和spring.servlet.multipart.max-request-size,ASP.NET的maxRequestLength/requestLimits.maxAllowedContentLength,这些参数服务端没调整的话,客户端怎么折腾都白搭。确认chunked传输的实现是否真的生效:开了chunked模式不代表逻辑没问题。要确保请求头里确实带了
Transfer-Encoding: chunked,而且客户端是分块读取响应,不是一股脑把整个文件加载到内存里——如果还是一次性读内存,照样会触发内存限制报错。排查中间代理的限制:如果你的请求经过Nginx、Apache这类反向代理,代理层可能也有自己的大小阈值。比如Nginx的
client_max_body_size要是设的105MB左右,直接就会返回400 Bad Request,这时候得去改代理的配置文件。翻API官方文档:有些API本身就定死了单个文件的下载上限,哪怕你调遍参数,超了就拒接。这种情况要么联系API提供者确认限制,要么看看有没有分块下载的接口(比如用
Range头按字节范围请求)。抓包看真实请求响应:用Wireshark或者Postman控制台扒一下请求头、响应头,确认chunked是不是真的生效了,还有Bad Request的具体原因——有些服务端会在响应体里写清楚错误,比如“文件大小超出服务端限制”。
内容的提问来源于stack exchange,提问作者Sunette

