客户的应用从我们的CFS系统获取ESG数据,之前一直工作的很好,但是,从5月9日之后不能下载,总是返回如下错误:
ErrorCode=HttpFileFailedToRead,'Type=Microsoft.DataTransfer.Common.Shared.HybridDeliveryException,Message=Failed to read data from http server. Check the error from http server:The remote server returned an error: (400) Bad Request.,Source=Microsoft.DataTransfer.ClientLibrary,''Type=System.Net.WebException,Message=The remote server returned an error: (400) Bad Request.,Source=System,'
客户的应用程序是跑在Azure平台上,没有更改,所以用户怀疑是我们的系统发生了改变。
Bulk team经过调研,最终获得如下的结论:
1. 根据用户的request/response,可以看出,用户从CFS获得302返回代码,然后客户的网络库会从rsponse中获取presigned url进行重定向操作,但是,在重定向的过程中,HTTP请求里面包含了CFS请求的token
2. AWS 获得请求后,发现presigned url里面,已经有用户的签名信息,并且请求包头里面还有token,从而拒绝访问,返回400
3. 错误的发生根源找到了,可是,为什么客户的程序没有改变,但是请求失败?
4. Bulk team怀疑Azure系统进行了某些改动,导致原来的行为不一样。
5. Bulk team调查了Azure的delivery notes,发现9日Azure发生如下升级:
https://download.microsoft.com/download/E/4/7/E4771905-1079-445B-8BF9-8A1A075D8A10/Release%20Notes.doc
其中,重定向的行为发生了变化,导致了这个问题的产生。
6. 经过和客户的沟通,客户想Microsoft提ticket获取帮助。
7. 这个问题,以前也有客户提出过类似的案例,不过不是发生在Azure上面。
https://developers.refinitiv.com/en/article-catalog/article/boost-tick-history-downloads-with-aws