4

これは、私のすべての検索で回答が得られ続けた問題とは逆です。人々はプレーン テキストを求めていたのに、圧縮されてしまいました。

curl を使用して Mailman メーリング リストからメーリング リスト アーカイブ ファイルを取得する bash スクリプトを作成しています (サーバー側で標準の Mailman Web インターフェイスを使用)。

(今月の) ファイルはhttp://lists.example.com/private.cgi/listname-domain.com/2013-September.txt.gz (サニタイズされた URL) です。

これをブラウザで保存すると、実際には、gzip で圧縮されたテキスト ファイルが得られます。

ただし、Curl でフェッチすると (ログイン パスワードを送信して Cookie セットを取得し、その Cookie ファイルを保存してリクエストで使用した後)、標準出力 (または -o ファイルに保存) は非圧縮です。文章。

ブラウザのように Curl にデータをファイルに保存させるにはどうすればよいですか? (私は Curl 呼び出しで --compressed フラグを使用していないことに注意してください。これは、サーバーが送信のためにデータを圧縮するという問題ではなく、サーバー ディスクに圧縮されたファイルをダウンロードするという問題であり、それを保持したいと考えています。圧縮されます。)

(明らかに、bash スクリプトで再圧縮することで、この問題を回避できます。ただし、CPU リソースの浪費と、将来発生するのを待っている問題です。または、非圧縮のままにして、名前をハックして、そのまま保存することもできます。 September.txt; 代わりにディスク容量を浪費します. 繰り返しますが、将来動作が変更された場合、これは機能しなくなります. 問題は、Curl が圧縮された送信と実際の圧縮されたデータとの間で混乱しているように思われます.)

4

2 に答える 2

3

curl によって送信された (または送信されなかった) ヘッダーに基づいて、サーバーがファイルを解凍している可能性はありますか? 次のヘッダーを curl で試してください。

--header 'Accept-Encoding: gzip,deflate'
于 2013-10-01T11:40:59.707 に答える
3

「curl」の代わりに「wget」を使用して、解凍せずに *.txt.gz を直接ダウンロードできます。

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

カールが不可欠な場合は、ここで詳細を確認してください

于 2013-10-01T08:15:38.050 に答える