リモートWebサイトからファイルをダウンロードするためのbashスクリプトをコーディングしていますが、リモートWebサイトでは最初にPOSTフォームを送信してからファイルを返す必要があります。その解決策を見つけることができ、うまく機能しています。
curl -F 'data=filename.rar' --user-agent 'Mozilla/4.0 POST' http://somewebsite.com/index.html -v > filename
ここで問題となるのは、サーバーがそのファイルを返すときにSTDOUTをリダイレクトする必要があることです。そうしないと、画面にぎこちないコードが表示されます。ハードコードされた「filename」の代わりに、ファイルの実際の名前を取得して、そこでSTDOUTをリダイレクトします。ヘッダーを取得してからファイル名を解析するために-sIオプションを指定してcurlを実行することは、ここでの解決策ではありません。これは、curlが-Iオプションと-Fオプションの組み合わせを受け入れないためです。ヘッダーを参照すると、サーバーもそれらと一緒にファイルを送信します。ヘッダーのみを取得する方法はありますか(ファイルを取得するために投稿データも送信する必要があることを忘れないでください)、ヘッダーを解析してファイル名を抽出できますか?次に、新しいcurlリクエストを作成しますが、そのファイル名をSTDOUT値として使用します。または、curlを作成して、ヘッダーからファイル名に自動的にダウンロードする方法はありますか?