webdevqa.jp.net

ユーザー名とパスワードを使用したHTTPSの正しいwgetコマンド構文は何ですか?

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'

何か不足していますか?助けてください。ありがとう。

32
Emerson Maningo

オプション--userおよび--ask-passwordを指定すると、wgetは資格情報を要求します。以下に例を示します。ユーザー名を変更し、必要に応じてリンクをダウンロードします。

wget --user=username --ask-password https://xyz.com/changelog-6.40.txt
59
thomasbabuj

おそらくHTTP 1.0のみに準拠しているため、wgetは一部のサーバーで適切に認証されないことがわかりました。このような場合、curl(HTTP 1.1に準拠)は通常トリックを行います:

curl -o <filename-to-save-as> -u <username>:<password> <url>

18
David Siegal

ファイルが部分的にダウンロードされるわけではありません。認証に失敗し、たとえば「index.html」をダウンロードしますが、myfile.Zipという名前を付けます(これはダウンロードしたいものです)。

@thomasbabujが提案するリンクをたどって、最終的にそれを見つけました。

--auth-no-challengeを追加してみてください。@ thomasbabujが示唆したとおり、パスワードエントリを置き換えてください。

つまり

wget --auth-no-challenge --user=myusername --ask-password https://test.mydomain.com/files/myfile.Zip
8
niCk cAMel