Wgetを使用して、このURLでファイルをリモートでダウンロードしたいと思います。
https://test.mydomain.com/files/myfile.Zip
サイトtest.mydomain.comにはログインが必要です。このコマンドを使用して別のサーバーにそのファイルをダウンロードしたいのですが、機能しません(ファイルを完全にダウンロードしません):
wget --user=myusername --password=mypassword https://test.mydomain.com/files/myfile.Zip
ユーザー名がmyusernameでパスワードがmypasswordの場合、正しいwget構文は何ですか?
上記のコマンドを入力した後の戻りメッセージは次のとおりです。
Resolving test.mydomain.com (test.mydomain.com)... 123.456.789
Connecting to test.mydomain.com (test.mydomain.com)|123.456.789|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://test.mydomain.com/login/unauthorized [following]
--2013-01-30 02:01:32-- https://test.mydomain.com/login/unauthorized
Reusing existing connection to test.mydomain.com:443.
HTTP request sent, awaiting response... 302 Found
Location: https://test.mydomain.com/login [following]
--2013-01-30 02:01:32-- https://test.mydomain.com/login
Reusing existing connection to test.mydomain.com:443.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: `myfile.Zip'
何か不足していますか?助けてください。ありがとう。
オプション--userおよび--ask-passwordを指定すると、wgetは資格情報を要求します。以下に例を示します。ユーザー名を変更し、必要に応じてリンクをダウンロードします。
wget --user=username --ask-password https://xyz.com/changelog-6.40.txt
おそらくHTTP 1.0のみに準拠しているため、wgetは一部のサーバーで適切に認証されないことがわかりました。このような場合、curl(HTTP 1.1に準拠)は通常トリックを行います:
curl -o <filename-to-save-as> -u <username>:<password> <url>
ファイルが部分的にダウンロードされるわけではありません。認証に失敗し、たとえば「index.html」をダウンロードしますが、myfile.Zipという名前を付けます(これはダウンロードしたいものです)。
@thomasbabujが提案するリンクをたどって、最終的にそれを見つけました。
--auth-no-challenge
を追加してみてください。@ thomasbabujが示唆したとおり、パスワードエントリを置き換えてください。
つまり
wget --auth-no-challenge --user=myusername --ask-password https://test.mydomain.com/files/myfile.Zip