bash - 当我没有要求时,Curl 正在解压缩压缩文件

标签 bash curl compression

这与我的所有搜索不断得出答案的问题相反,人们想要纯文本,但得到压缩。

我正在编写一个 bash 脚本,它使用 curl 从 Mailman 邮件列表(使用服务器端的标准 Mailman Web 界面)获取邮件列表存档文件。

文件(本月)是 http://lists.example.com/private.cgi/listname-domain.com/2013-September.txt.gz (经过清理的 URL)。

当我用我的浏览器保存它时,我实际上得到了一个 gzip 压缩的文本文件,解压后包含我期望的内容。

当我使用 Curl 获取它时(在之前发送登录密码并设置 cookie 并保存该 cookie 文件以在请求中使用之后),但是,stdout 输出的内容(或保存到 -o 文件)是未压缩的文本。

如何让 Curl 像我的浏览器一样将数据保存到文件中? (请注意,我没有在我的 Curl 调用中使用 --compressed 标志;这不是服务器压缩数据传输的问题,而是下载在服务器上压缩的文件的问题磁盘,我想将其压缩。)

(很明显,我可以通过在我的 bash 脚本中重新压缩它来解决这个问题。虽然浪费了 CPU 资源,但将来会出现问题。或者我可以不压缩它,然后破解名称和存储它只是 September.txt;这会浪费磁盘空间。同样,如果将来行为发生变化,那将会中断。在我看来,问题是 Curl 在压缩传输之间变得困惑,以及实际压缩的数据。)

最佳答案

服务器是否可能根据 curl 发送(或未发送)的 header 解压缩文件?使用 curl 尝试以下 header :

--header 'Accept-Encoding: gzip,deflate'

关于bash - 当我没有要求时,Curl 正在解压缩压缩文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19108291/

相关文章:

bash - 如何在某些字符后停止 ANSI 文本颜色代码的效果或将文本颜色设置回默认值?

laravel - 入口 API {"error_message":"You must support\u0027gzip\u0027 to use F13"}

c++ - C 或 C++ 中的文本压缩

java - 有损压缩中的隐写术 (JAVA)

loops - 在 cmd 中循环 curl

linux - Zip 函数垃圾目录路径

python - 从 bash 将参数传递给 python 函数

bash - 日期 - bash 中没有前导 0 或空格的月份?

Bash,标准输出重定向命令,如 scp

curl - 我需要删除curl中的cluster.routing.allocation.awareness.force