如何基于*重定向*响应头,使用带有cURL的响应头文件名保存文件

如何基于*重定向*响应头,使用带有cURL的响应头文件名保存文件,curl,Curl,与类似,但服务器实际上并不返回文件(&Content-Disposition头),而是重定向到另一个返回文件的服务器。这会导致cURL有效地忽略J选项。因此,流程是: curl https://example.com/redirect-me-to-my-file -LOJ -> Redirect (no Content-Disposition) to https://otherexample.com/here-is-my-file -> File + Content-Disposit

与类似,但服务器实际上并不返回文件(&Content-Disposition头),而是重定向到另一个返回文件的服务器。这会导致cURL有效地忽略J选项。因此,流程是:

curl https://example.com/redirect-me-to-my-file -LOJ
-> Redirect (no Content-Disposition) to https://otherexample.com/here-is-my-file
-> File + Content-Disposition header
这会导致cURL将文件保存为“重定向到我的文件”,而不是内容处置头中的内容。在Chrome等浏览器中进行下载可获得预期的文件名

有办法解决这个问题吗?


(L、O和J命令行选项的顺序似乎不会影响结果,当我添加-v时,我可以看到在第一个响应中缺少内容配置,并且在重定向的响应中存在内容配置)

curl 7.22.0(x86_64-pc-linux-gnu)libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 librtmp/2.3协议:dict文件ftp ftps gopher http https imap imap ldap pop3 pop3s rtmp rtsp smtps smtps telnet tftp功能:GSS协商IDN IPv6大文件NTLM NTLM_WB SSL libz TLS SRPTry升级curl版本。我在
curl7.24.0
上尝试了这个方法,通过使用
-LOJ
它工作得很好[使用重定向上的disposition字段]。我确实用
http
试过了,而不是
https