Azure Synapse Copy Activity调用REST API未生效gzip压缩头问题排查
Synapse自动解压了响应,显示的是原始数据大小
Copy Activity默认会自动解码gzip格式的响应,你在监控里看到的14.04MB其实是解压后的原始数据量,而非下载的压缩包大小。而Postman显示的是下载时的压缩文件大小,两者统计维度不同,所以看起来差异明显。可以查看Copy Activity的运行日志,或者检查源配置中是否有手动关闭自动解压的选项。请求头未正确传递到API服务端
可能在Copy Activity的源配置中,Accept-Encoding: gzip头的设置存在问题——比如拼写错误、格式不对,或者被Synapse的默认请求头覆盖。可以通过API服务端的访问日志确认是否收到了这个头,或者用抓包工具查看Synapse实际发送的请求头内容。Copy Activity的HTTP客户端未启用压缩支持
即使你添加了请求头,Synapse Copy Activity底层的HTTP客户端可能默认未开启gzip压缩接收功能,导致API返回的还是未压缩数据。这种情况下需要检查Synapse链接服务或源的配置项,看是否有专门启用压缩的开关需要打开。API服务端根据客户端标识决定是否压缩
部分API会根据请求的User-Agent头判断客户端类型,仅对特定客户端返回压缩响应。Postman的User-Agent和Synapse Copy Activity的默认值不同,可能API只给Postman返回压缩数据。可以尝试在Copy Activity的请求头中设置与Postman相同的User-Agent,再测试下载大小是否变化。
内容的提问来源于stack exchange,提问作者Pruthviraj Vachhani

