2013-10-01 43 views
3

這是問題的相反我所有的搜索一直想出答案,那裏的人們純文本,但壓縮。捲曲解壓壓縮文件時,我並沒有要求它

我正在寫一個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文件)是UNCOMPRESSED文本。

如何讓Curl將數據保存到像我的瀏覽器那樣的文件中? (注意,我是而不是在我的Curl調用中使用--compressed標誌;這不是服務器壓縮數據進行傳輸的問題,而是下載在服務器磁盤上壓縮的文件的問題,我想保持壓縮狀態)

(很明顯,我可以通過在我的bash腳本中重新壓縮來解決這個問題,儘管CPU資源浪費,等待發生的問題,或者我可以不壓縮它,並破解名稱並將其存儲爲9月份的.txt文件;這會浪費磁盤空間,而且,如果行爲在未來發生變化,則會中斷此問題,但問題似乎在於Curl在傳輸壓縮文件時被混淆了,和實際壓縮的數據)。

+0

顯示您的HTTP響應標頭。 –

+0

你指定'--tr-encoding'? – devnull

+0

你如何驗證文件已被解壓縮? (我知道這聽起來像一個奇怪的問題,但如果答案是「我看了它」,那麼用什麼工具?)(或者,不那麼神祕,如果你用'less'查看文件,嘗試'less -L') – rici

回答

3

你可以直接下載* .txt.gz,不需要任何解壓縮,用'wget'而不是'curl'。

wget http://lists.example.com/private.cgi/listname-domain.com/2013-September.txt.gz 

如果捲曲是必要的,那麼檢查出的細節here

2

是否有可能在服務器由捲曲解壓基於頭髮送的文件(或不發送)?用curl嘗試以下標題:

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