web-dev-qa-db-ja.com

`curl -O`は空のファイルを保存しますが、` wget`はうまく機能します

https://logz.io/sample-dataからファイルをダウンロードしようとしました。

curl -O https://logz.io/sample-data

ただし、sample-dataという名前の空のファイルを返すだけです。

ただし、curlとは対照的に、wgetは適切なコンテンツを含むファイルを返すのに適しています。

wget https://logz.io/sample-data 

curlで見逃したことは何ですか?

2
user3523935

URLエンドポイントが別のエンドポイント(https://s3.amazonaws.com/logzio-elk/Apache-daily-access.log)にリダイレクトされる(301)ので、curlを使用してリダイレクトを追跡するのを忘れました。 HEADメソッド(-I)を使用して、指定されたURLにリクエストを送信します。

% curl -LI https://logz.io/sample-data
HTTP/1.1 301 Moved Permanently
...
...
Location: https://s3.amazonaws.com/logzio-elk/Apache-daily-access.log
...

HTTP/1.1 200 OK
...
...
Server: AmazonS3

curlはデフォルトではHTTPリダイレクトに従わないため、-L/--locationオプションを使用してcurlに指示する必要があります。

curl -LO https://logz.io/sample-data

wgetはデフォルトでリダイレクトに従うため、wgetas-isで最終的なURLに到達します。

3
heemayl