cURLからダウンロードした画像は開けませんが、URLから直接開くことができます。

cURLからダウンロードした画像は開けませんが、URLから直接開くことができます。

これはファイルをダウンロードする私のカールコマンドです。ダウンロードしたファイルが破損して開けません。ファイルURLは次のとおりです。https://www.carscoops.com/wp-content/uploads/2022/12/Buick-Encore-GX-Scoop-4.jpg

curl -iv --output abc.jpg --request GET \
  --url https://www.carscoops.com/wp-content/uploads/2022/12/Buick-Encore-GX-Scoop-4.jpg

Chromeでカールの完全なコピーを試しましたが、うまくいきませんでした。

curl 'https://www.carscoops.com/wp-content/uploads/2022/12/Buick-Encore-GX-Scoop-4.jpg' --output "abc.jpg" \
  -H 'authority: www.carscoops.com' \
  -H 'accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' \
  -H 'accept-language: en-US,en;q=0.9' \
  -H 'cache-control: no-cache' \
  -H 'pragma: no-cache' \
  -H 'sec-ch-ua: "Not?A_Brand";v="8", "Chromium";v="108", "Google Chrome";v="108"' \
  -H 'sec-ch-ua-mobile: ?0' \
  -H 'sec-ch-ua-platform: "macOS"' \
  -H 'sec-fetch-dest: document' \
  -H 'sec-fetch-mode: navigate' \
  -H 'sec-fetch-site: none' \
  -H 'sec-fetch-user: ?1' \
  -H 'upgrade-insecure-requests: 1' \
  -H 'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36'

また、機能しませんが、wgetブラウザからアクセスできます。どのような技術でダウンロードを防ぐことができますか?

答え1

イメージはBrotliでエンコードされていますが(レスポンスヘッダContent-Encoding: brを参照)、カールバージョンがbrotliをサポートしていない可能性が高いため、デコードは自動的に無視されます。このオプションを追加すると、カールバージョンが返されたエンコーディングをサポートしていることを確認できます--compressed。 Curlは、コンテンツのエンコーディングを理解していないと失敗します。はい(Debian Busterでテスト済み):

$ curl --compressed "https://www.carscoops.com/wp-content/uploads/2022/12/Buick-Encore-GX-Scoop-4.jpg" > abc.jpg
curl: (61) Unrecognized content encoding type. libcurl understands deflate, gzip content encodings.

カールバージョンをアップグレードしてみてください。最新バージョンではbrをサポートする必要があります。

またはブロットリー出力をパイピングして「圧縮解除」できるコマンドラインツール(確かにすでに圧縮されているJPEG画像の場合、エンコードは簡単なので、実際に画像を「圧縮解除」するために数バイトだけ削除するだけですが、ほとんどは作業に適したツールです。 .):

$ curl "https://www.carscoops.com/wp-content/uploads/2022/12/Buick-Encore-GX-Scoop-4.jpg" \
| brotli -d > abc.jpg

関連情報