这与我的所有搜索都能得到答案的问题相反,人们想要纯文本,但得到压缩。
我正在编写一个bash脚本,它使用curl从Mailman邮件列表中获取邮件列表存档文件(使用服务器端的标准Mailman Web界面)。
该文件(本月)为http://lists.example.com/private.cgi/listname-domain.com/2013-September.txt.gz(已清理的网址)。
当我用浏览器保存时,我实际上得到了一个gzip压缩文本文件,当ungzipped包含我期望的内容时。
当我使用Curl获取它时(之前发送登录密码并获取cookie设置,并保存该cookie文件以在请求中使用),但stdout出来的是什么(或者保存到-o文件中)是UNCOMPRESSED文本。
如何让Curl将数据保存到像浏览器一样的文件中? (注意我在我的Curl调用中使用--compressed标志 not ;这不是服务器压缩数据进行传输的问题,这是一个下载在服务器上压缩的文件的问题磁盘,我想保持压缩。)
(显然我可以通过在我的bash脚本中重新压缩它来解决这个问题。浪费CPU资源,但是将来会遇到一个问题。或者我可以保持未压缩状态,并破解名称和存储它只是九月.txt;这会浪费磁盘空间。但是,如果将来行为发生变化,那将会破坏。问题在于我认为Curl在压缩传输之间感到困惑,和实际压缩的数据。)
答案 0 :(得分:3)
您可以直接下载* .txt.gz,无需任何解压缩,使用'wget'代替'curl'。
wget http://lists.example.com/private.cgi/listname-domain.com/2013-September.txt.gz
如果卷曲很重要,请查看详细信息here
答案 1 :(得分:2)
服务器是否可以根据curl发送(或不发送)的标头解压缩文件?请使用curl尝试以下标题:
--header 'Accept-Encoding: gzip,deflate'