私はcURLを使用してダウンロードしようとしているファイルリンクを持っています。このファイルを特定の一時ファイルに出力する必要があります。また、特定のヘッダー値を取得する必要があります。ファイルに出力して特定のヘッダファイルをcURLで取得する方法は?
例:
Link: http://my.download.url<br>
Output to: /tmp/my-downloaded-file<br>
Header(Content-Length or whatever): abc123
私はcURLを使用してダウンロードしようとしているファイルリンクを持っています。このファイルを特定の一時ファイルに出力する必要があります。また、特定のヘッダー値を取得する必要があります。ファイルに出力して特定のヘッダファイルをcURLで取得する方法は?
例:
Link: http://my.download.url<br>
Output to: /tmp/my-downloaded-file<br>
Header(Content-Length or whatever): abc123
ので、ファイル名は、ヘッダの値に依存?
cURLは、私が知る限り、ヘッダーを1つのストリーム(標準出力)に、本文を別のストリームに取得することを許可しません。あなたがする必要があるのは、それらのすべてをまとめて解析するか、2回の呼び出しを行うことです。ここでは、2つのコールアプローチがある:
# URL and the header you want
url="http://www.example.com"
hdr="Content-Length"
# get the value of the header (this does not download the body)
headerValue=$(curl -sI "$url" | grep -i "^$hdr:" | cut -f2 -d: | sed 's/^[ \r\n\t]*//;s/[ \r\n\t]*$//')
# create a file name from that header value
fileName="/tmp/download-$headerValue"
# download the body into that file
curl -so "$fileName" "$url"
最初の呼び出しはヘッダーのみをダウンロードする 'HEAD'を実行します。 2回目の呼び出しは 'GET'を実行し、ヘッダとボディをダウンロードします。 – bishop
オハイオ州はそれを得たので、2回ダウンロードしません。ありがとう! –
あなたとあなたの内容私は、ファイルに出力をコピーしたい – Inian
@Inian(私が提供するつもりだパス)を抽出したいの正確な出力を提供しますコンテンツの名前。 –
十分なフェア!それに書いた後に何をしたいのですか?例を提供する – Inian