Wgetを使用して、認証トークン「AUTH_1624582364932749DFHDD」を使用して「test」フォルダーに遠方のサーバーに画像をアップロードします。
このコマンドは機能せず(認証に失敗しました)、構文に関するものではないことを確認したいと思います。
wget --post-file=nature.jpg http://ipadress:8080/v1/AUTH_test/test/ --post-data="AUTH_1624582364932749DFHDD"
助言がありますか?
Wgetは現在、x-www-form-urlencodedデータのみをサポートしています。 --post-file
は、フォームの添付ファイルとしてファイルを送信するためではなく、key=value&otherkey=example
という形式のデータが必要です。
--post-data
と--post-file
は同じように機能します。唯一の違いは、--post-data
を使用するとコマンドラインでデータを指定でき、--post-file
を使用するとパスを指定できることです。送信するデータを含むファイル。
ドキュメントは次のとおりです。
--post-data=string
--post-file=file
Use POST as the method for all HTTP requests and send the specified data
in the request body. --post-data sends string as data, whereas
--post-file sends the contents of file. Other than that, they work in
exactly the same way. In particular, they both expect content of the
form "key1=value1&key2=value2", with percent-encoding for special
characters; the only difference is that one expects its content as a
command-line parameter and the other accepts its content from a file. In
particular, --post-file is not for transmitting files as form
attachments: those must appear as "key=value" data (with appropriate
percent-coding) just like everything else. Wget does not currently
support "multipart/form-data" for transmitting POST data; only
"application/x-www-form-urlencoded". Only one of --post-data and
--post-file should be specified.
認証トークンに関しては、ヘッダー、URLのパス、またはデータ自体のいずれかで提供する必要があります。これは、使用するサービスのドキュメントのどこかに記載する必要があります。 GET要求のように、POST要求では、キーと値を使用してデータを指定する必要があります。これにより、サーバーは特定の名前の複数の情報を受信できます。変数についても同様です。
したがって、マジックトークンをサーバーに送信するだけでなく、キーの名前も指定する必要があります。キーが「トークン」の場合、token=YOUR_TOKEN
である必要があります。
wget --post-data 'user=foo&password=bar' http://example.com/auth.php
また、curlを使用してファイルを送信する方が簡単なため、可能であればcurlの使用を検討する必要があります。そのためのインターネット上の多くの例があります。