Wgetを使用してファイルをダウンロードし、RESTAPIと対話する方法
著者はCOVID-19救済基金を選択し、 Write forDOnationsプログラムの一環として寄付を受け取りました。
序章
Wget は、ファイルをダウンロードしてRESTAPIを操作できるネットワークコマンドラインツールです。 それはサポートします HTTP
,HTTPS
, FTP
、 と FTPS
インターネットプロトコル。 Wgetは不安定で遅いネットワーク接続を処理できます。 ダウンロードが失敗した場合、Wgetはファイル全体が取得されるまで試行を続けます。 Wgetでは、中断されたファイルのダウンロードを最初からやり直すことなく再開することもできます。
Wgetを使用して、追加の外部プログラムをインストールせずにRESTAPIと対話することもできます。 あなたが作ることができます GET
, POST
, PUT
、 と DELETE
HTTP
ターミナルに単一および複数のヘッダーがあるリクエスト。
このチュートリアルでは、Wgetを使用してファイルをダウンロードし、REST APIエンドポイントを操作し、DigitalOceanアカウントでドロップレットを作成および管理します。
You can use your local system or a remote server to open a terminal and run the commands there.
前提条件
このチュートリアルを完了するには、次のものが必要です。
-
Wgetがインストールされています。 ほとんどのLinuxディストリビューションには、デフォルトでWgetがインストールされています。 確認するには、次のように入力します
wget
ターミナルでを押してENTER
. インストールされていない場合は、次のように表示されます。command not found
. 次のコマンドを実行してインストールできます。sudo apt-get install wget
. -
DigitalOceanアカウント。 アカウントをお持ちでない場合は、新しいアカウントにサインアップしてください。
-
DigitalOceanパーソナルアクセストークン。DigitalOceanコントロールパネルから作成できます。 そのための手順は、パーソナルアクセストークンの生成方法にあります。
ファイルのダウンロード
このセクションでは、Wgetを使用してダウンロードエクスペリエンスをカスタマイズします。 たとえば、単一のファイルと複数のファイルをダウンロードし、不安定なネットワーク状態でファイルのダウンロードを処理し、ダウンロードが中断した場合にダウンロードを再開する方法を学習します。
まず、このチュートリアル全体でダウンロードするファイルを保存するディレクトリを作成します。
- mkdir -p DigitalOcean-Wget-Tutorial/Downloads
上記のコマンドを使用して、という名前のディレクトリを作成しました DigitalOcean-Wget-Tutorial
、その中に、という名前のサブディレクトリを作成しました Downloads
. このディレクトリとそのサブディレクトリは、ダウンロードしたファイルを保存する場所になります。
に移動します DigitalOcean-Wget-Tutorial
ディレクトリ:
- cd DigitalOcean-Wget-Tutorial
ダウンロードしたファイルを保存するディレクトリが正常に作成されました。
ファイルのダウンロード
Wgetを使用してファイルをダウンロードするには、次のように入力します wget
ダウンロードしたいファイルのURLが続きます。 Wgetは指定されたURLのファイルをダウンロードし、現在のディレクトリに保存します。
次のコマンドを使用して、jQueryの縮小バージョンをダウンロードしてみましょう。
- wget https://code.jquery.com/jquery-3.6.0.min.js
jQueryが何であるかわからなくても心配しないでください。インターネット上で利用可能な任意のファイルをダウンロードできたはずです。 知っておく必要があるのは、Wgetを使用してインターネットからファイルを正常にダウンロードしたことだけです。
出力は次のようになります。
Output--2021-07-21 16:25:11-- https://code.jquery.com/jquery-3.6.0.min.js
Resolving code.jquery.com (code.jquery.com)... 69.16.175.10, 69.16.175.42, 2001:4de0:ac18::1:a:1a, ...
Connecting to code.jquery.com (code.jquery.com)|69.16.175.10|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 89501 (87K) [application/javascript]
Saving to: ‘jquery-3.6.0.min.js’
jquery-3.6.0.min.js 100%[===================>] 87.40K 114KB/s in 0.8s
2021-07-21 16:25:13 (114 KB/s) - ‘jquery-3.6.0.min.js’ saved [89501/89501]
上記の出力によると、という名前のファイルが正常にダウンロードおよび保存されました。 jquery-3.6.0.min.js
現在のディレクトリに移動します。
次のコマンドを使用して、現在のディレクトリの内容を確認できます。
- ls
出力は次のようになります。
OutputDownloads jquery-3.6.0.min.js
ダウンロードしたファイルのファイル名を指定する
ファイルをダウンロードするとき、Wgetはデフォルトでファイルがサーバー上に持っている名前を使用してファイルを保存します。 あなたはそれを使用して変更することができます -O
新しい名前を指定するオプション。
以前にダウンロードしたjQueryファイルをダウンロードしますが、今回は別の名前で保存します。
- wget -O jquery.min.js https://code.jquery.com/jquery-3.6.0.min.js
上記のコマンドを使用して、jQueryファイルを次のように保存するように設定します jquery.min.js
それ以外の jquery-3.6.0.min.js
出力は次のようになります。
Output--2021-07-21 16:27:01-- https://code.jquery.com/jquery-3.6.0.min.js
Resolving code.jquery.com (code.jquery.com)... 69.16.175.10, 69.16.175.42, 2001:4de0:ac18::1:a:2b, ...
Connecting to code.jquery.com (code.jquery.com)|69.16.175.10|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 89501 (87K) [application/javascript]
Saving to: ‘jquery.min.js’
jquery.min.js 100%[==================================>] 87.40K 194KB/s in 0.4s
2021-07-21 16:27:03 (194 KB/s) - ‘jquery.min.js’ saved [89501/89501]
上記の出力によると、jQueryファイルが正常にダウンロードされ、次のように保存されています。 jquery.min.js
.
あなたは使用することができます ls
現在のディレクトリの内容を一覧表示するコマンドを実行すると、 jquery.min.js
そこにファイル:
- ls
出力は次のようになります。
OutputDownloads jquery-3.6.0.min.js jquery.min.js
これまでに使用しました wget
現在のディレクトリにファイルをダウンロードします。 次に、特定のディレクトリにダウンロードします。
特定のディレクトリにファイルをダウンロードする
ファイルをダウンロードするとき、Wgetはデフォルトでそれを現在のディレクトリに保存します。 あなたはそれを使用して変更することができます -P
ファイルを保存するディレクトリの名前を指定するオプション。
以前にダウンロードしたjQueryファイルをダウンロードしますが、今回はそれを Downloads
サブディレクトリ。
- wget -P Downloads/ https://code.jquery.com/jquery-3.6.0.min.js
出力は次のようになります。
Output--2021-07-21 16:28:50-- https://code.jquery.com/jquery-3.6.0.min.js
Resolving code.jquery.com (code.jquery.com)... 69.16.175.42, 69.16.175.10, 2001:4de0:ac18::1:a:2b, ...
Connecting to code.jquery.com (code.jquery.com)|69.16.175.42|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 89501 (87K) [application/javascript]
Saving to: ‘Downloads/jquery-3.6.0.min.js’
jquery-3.6.0.min.js 100%[==================================>] 87.40K 43.6KB/s in 2.0s
2021-07-21 16:28:53 (43.6 KB/s) - ‘Downloads/jquery-3.6.0.min.js’ saved [89501/89501]
最後の行に注意してください jquery-3.6.0.min.js
ファイルはに保存されました Downloads
ディレクトリ。
を使用する場合 ls Downloads
の内容を一覧表示するコマンド Downloads
ディレクトリには、jQueryファイルが表示されます。
を実行します ls
指図:
- ls Downloads
出力は次のようになります。
Outputjquery-3.6.0.min.js
Wgetの出力をオフにする
デフォルトでは、ファイルをダウンロードすると、Wgetは多くの情報を端末に出力します。 あなたは使用することができます -q
すべての出力をオフにするオプション。
jQueryファイルをダウンロードしますが、今回は出力を表示しません。
- wget -q https://code.jquery.com/jquery-3.6.0.min.js
出力は表示されませんが、 ls
現在のディレクトリの内容を一覧表示するコマンドを使用すると、 jquery-3.6.0.min.js.1
:
- ls
出力は次のようになります。
OutputDownloads jquery-3.6.0.min.js jquery-3.6.0.min.js.1 jquery.min.js
ファイルを保存する前に、Wgetはファイルが目的のディレクトリに存在するかどうかを確認します。 含まれている場合、Wgetはファイルの最後に数字を追加します。 上記のコマンドをもう一度実行すると、Wgetは次の名前のファイルを作成します jquery-3.6.0.min.js.2
. この数は、同じ名前のファイルが既にあるディレクトリにファイルをダウンロードするたびに増加します。
Wgetの出力を正常にオフにしましたが、ダウンロードの進行状況を監視できなくなりました。 ダウンロードの進行状況バーを表示する方法を見てみましょう。
ダウンロードの進行状況バーを表示する
Wgetを使用すると、ダウンロードの進行状況バーを表示できますが、 -q
オプションと一緒に --show-progress
オプション。
jQueryファイルをダウンロードしますが、今回はダウンロードの進行状況バーのみを表示します。
- wget -q --show-progress https://code.jquery.com/jquery-3.6.0.min.js
出力は次のようになります。
Outputjquery-3.6.0.min.js.2 100%[================================================>] 87.40K 207KB/s in 0.4s
使用 ls
現在のディレクトリの内容を確認するコマンドを実行すると、ダウンロードしたばかりのファイルが次の名前で見つかります。 jquery-3.6.0.min.js.2
この時点から、 -q
と --show-progress
後続のほとんどのWgetコマンドのオプション。
これまでのところ、ダウンロードしたファイルは1つだけです。 次に、複数のファイルをダウンロードします。
複数のファイルをダウンロードする
Wgetを使用して複数のファイルをダウンロードするには、 .txt
ファイルを作成し、ダウンロードするファイルのURLを挿入します。 ファイル内にURLを挿入した後、 wget
とのコマンド -i
オプションの後に名前が続く .txt
URLを含むファイル。
名前の付いたファイルを作成します images.txt
:
- nano images.txt
の images.txt
、次のURLを追加します。
https://cdn.pixabay.com/photo/2016/12/13/05/15/puppy-1903313__340.jpg
https://cdn.pixabay.com/photo/2016/01/05/17/51/maltese-1123016__340.jpg
https://cdn.pixabay.com/photo/2020/06/30/22/34/dog-5357794__340.jpg
URLは、Pixabayで見つかった犬の3つのランダムな画像にリンクしています。 URLを追加したら、ファイルを保存して閉じます。
今、あなたは使用します -i
オプションと一緒に -P
,-q
と --show-progress
3つの画像すべてをにダウンロードするために以前に学習したオプション Downloads
ディレクトリ:
- wget -i images.txt -P Downloads/ -q --show-progress
出力は次のようになります。
Outputpuppy-1903313__340.jp 100%[=========================>] 26.44K 93.0KB/s in 0.3s
maltese-1123016__340. 100%[=========================>] 50.81K --.-KB/s in 0.06s
dog-5357794__340.jpg 100%[=========================>] 30.59K --.-KB/s in 0.07s
を使用する場合 ls Downloads
の内容を一覧表示するコマンド Downloads
ディレクトリには、ダウンロードしたばかりの3つの画像の名前が表示されます。
- ls Downloads
出力は次のようになります。
Outputdog-5357794__340.jpg jquery-3.6.0.min.js maltese-1123016__340.jpg puppy-1903313__340.jpg
ダウンロード速度の制限
これまでのところ、利用可能な最大のダウンロード速度でファイルをダウンロードしています。 ただし、他のタスクのリソースを保持するために、ダウンロード速度を制限することをお勧めします。 を使用してダウンロード速度を制限できます --limit-rate
オプションの後に許可される最大速度が続く kiloBits per second
と手紙 k
.
の最初の画像をダウンロードします images.txt
の速度でファイル 15 kB/S
に Downloads
ディレクトリ:
- wget --limit-rate 15k -P Downloads/ -q --show-progress https://cdn.pixabay.com/photo/2016/12/13/05/15/puppy-1903313__340.jpg
出力は次のようになります。
Outputpuppy-1903313__340.jpg.1 100%[====================================================>] 26.44K 16.1KB/s in 1.6s
を使用する場合 ls Downloads
内容を確認するコマンド Downloads
ディレクトリには、ダウンロードしたばかりのファイルが名前で表示されます puppy-1903313__340.jpg.1
.
すでに存在するファイルをダウンロードする場合、Wgetは既存のファイルを上書きする代わりに新しいファイルを作成します。 次に、ダウンロードしたファイルを上書きします。
ダウンロードしたファイルを上書きする
ダウンロードしたファイルは、 -O
ファイル名の横にあるオプション。 以下のコードでは、最初に、にリストされている2番目の画像をダウンロードします。 images.txt
ファイルを現在のディレクトリに移動してから、上書きします。
まず、2番目のイメージを現在のディレクトリにダウンロードし、名前を次のように設定します。 image2.jpg
:
- wget -O image2.jpg -q --show-progress https://cdn.pixabay.com/photo/2016/12/13/05/15/puppy-1903313__340.jpg
出力は次のようになります::
Outputimage2.jpg 100%[====================================================>] 26.44K --.-KB/s in 0.04s
を使用する場合 ls
現在のディレクトリの内容を確認するコマンドを実行すると、ダウンロードしたばかりのファイルが次の名前で表示されます。 image2.jpg
.
これを上書きしたい場合 image2.jpg
ファイルの場合、以前に実行したのと同じコマンドを実行できます。
- wget -O image2.jpg -q --show-progress https://cdn.pixabay.com/photo/2016/12/13/05/15/puppy-1903313__340.jpg
上記のコマンドは何度でも実行でき、Wgetはファイルをダウンロードして既存のファイルを上書きします。 上記のコマンドを実行せずに -O
オプションの場合、Wgetは実行するたびに新しいファイルを作成します。
ダウンロードを再開する
これまでのところ、中断することなく複数のファイルを正常にダウンロードできました。 ただし、ダウンロードが中断された場合は、 -c
オプション。
次のコマンドを実行して、Pixabayで見つかった犬のランダムな画像をダウンロードします。 コマンドでは、最大速度をに設定していることに注意してください 1 KB/S
. 画像のダウンロードが完了する前に、を押します Ctrl+C
ダウンロードをキャンセルするには:
- wget --limit-rate 1k -q --show-progress https://cdn.pixabay.com/photo/2018/03/07/19/51/grass-3206938__340.jpg
ダウンロードを再開するには、 -c
オプション。 これは、不完全なファイルと同じディレクトリで次のコマンドを実行した場合にのみ機能することに注意してください。
- wget -c --limit-rate 1k -q --show-progress https://cdn.pixabay.com/photo/2018/03/07/19/51/grass-3206938__340.jpg
これまでは、フォアグラウンドでファイルをダウンロードしただけです。 次に、バックグラウンドでファイルをダウンロードします。
バックグラウンドでのダウンロード
を使用してバックグラウンドでファイルをダウンロードできます -b
オプション。
以下のコマンドを実行して、バックグラウンドでPixabayから犬のランダムな画像をダウンロードします。
- wget -b https://cdn.pixabay.com/photo/2018/03/07/19/51/grass-3206938__340.jpg
バックグラウンドでファイルをダウンロードすると、Wgetはという名前のファイルを作成します wget-log
現在のディレクトリにあり、すべての出力をこのファイルにリダイレクトします。 ダウンロードのステータスを確認したい場合は、次のコマンドを使用できます。
- tail -f wget-log
出力は次のようになります。
OutputResolving cdn.pixabay.com (cdn.pixabay.com)... 104.18.20.183, 104.18.21.183, 2606:4700::6812:14b7, ...
Connecting to cdn.pixabay.com (cdn.pixabay.com)|104.18.20.183|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 33520 (33K) [image/jpeg]
Saving to: ‘grass-3206938__340.jpg’
0K .......... .......... .......... .. 100% 338K=0.1s
2021-07-20 23:49:52 (338 KB/s) - ‘grass-3206938__340.jpg’ saved [33520/33520]
タイムアウトの設定
この時点まで、ファイルをダウンロードしようとしているサーバーは正常に機能していると想定していました。 ただし、サーバーが正しく機能していないと仮定しましょう。 Wgetを使用して、最初にサーバーが応答するのを待つ時間を制限し、次にWgetがサーバーに到達しようとする回数を制限することができます。
ファイルをダウンロードしたいが、サーバーが正しく機能しているかどうかわからない場合は、を使用してタイムアウトを設定できます。 -T
オプションの後に秒単位の時間が続きます。
次のコマンドでは、タイムアウトを次のように設定しています。 5
秒:
- wget -T 5 -q --show-progress https://cdn.pixabay.com/photo/2016/12/13/05/15/puppy-1903313__340.jpg
最大試行回数の設定
また、Wgetが中断された後、ファイルのダウンロードを試行する回数を設定することもできます。 --tries
オプションの後に試行回数が続きます。
以下のコマンドを実行することにより、試行回数を制限します。 3
:
- wget --tries=3 -q --show-progress https://cdn.pixabay.com/photo/2018/03/07/19/51/grass-3206938__340.jpg
無期限に試してみたい場合は合格することができます inf
と一緒に --tries
オプション:
- wget --tries=inf -q --show-progress https://cdn.pixabay.com/photo/2018/03/07/19/51/grass-3206938__340.jpg
このセクションでは、Wgetを使用して、単一のファイルと複数のファイルをダウンロードし、ダウンロードを再開し、ネットワークの問題を処理しました。 次のセクションでは、RESTAPIエンドポイントとの対話について学習します。
RESTAPIとの対話
このセクションでは、Wgetを使用して、外部プログラムをインストールせずにRESTAPIを操作します。 最も一般的に使用されるものを送信するための構文を学習します HTTP
メソッド: GET
, POST
, PUT
、 と DELETE
.
模擬RESTAPIとしてJSONPlaceholderを使用します。 JSONPlaceholderは、偽のデータに使用できる無料のオンラインRESTAPIです。 (送信するリクエストはデータベースに影響を与えず、データは保存されません。)
GETリクエストの送信
Wgetでは送信できます GET
次のようなコマンドを実行してリクエストします。
- wget -O- [ URL ]
上記のコマンドでは、 -
後に -O
オプションは標準出力を意味するため、WgetはURLの出力を、前のセクションで行ったようにファイルに送信するのではなく、端末に送信します。 GET
デフォルトです HTTP
Wgetが使用するメソッド。
ターミナルウィンドウで次のコマンドを実行します。
- wget -O- https://jsonplaceholder.typicode.com/posts?_limit=2
上記のコマンドでは、 wget
送信するには GET
から2つの投稿を取得するには、JSONプレースホルダーにリクエストしてください REST API
.
出力は次のようになります。
Output--2021-07-21 16:52:51-- https://jsonplaceholder.typicode.com/posts?_limit=2
Resolving jsonplaceholder.typicode.com (jsonplaceholder.typicode.com)... 104.21.10.8, 172.67.189.217, 2606:4700:3032::6815:a08, ...
Connecting to jsonplaceholder.typicode.com (jsonplaceholder.typicode.com)|104.21.10.8|:443... connected.
HTTP request sent, awaiting response... 200 OK'
Length: 600 [application/json]
Saving to: ‘STDOUT’
- 0%[ ] 0 --.-KB/s [
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
},
{
"userId": 1,
"id": 2,
"title": "qui est esse",
"body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla"
}
- 100%[==================================>] 600 --.-KB/s in 0s
2021-07-21 16:52:53 (4.12 MB/s) - written to stdout [600/600]
それが言う行に注意してください HTTP request sent, awaiting response... 200 OK
、これは、送信に成功したことを意味します GET
JSONPlaceholderへのリクエスト。
出力が多すぎる場合は、 -q
前のセクションで学習したオプションで、出力を結果に制限します。 GET
リクエスト:
- wget -O- -q https://jsonplaceholder.typicode.com/posts?_limit=2
出力は次のようになります。
Output[
{
"userId": 1,
"id": 1,
"title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
"body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
},
{
"userId": 1,
"id": 2,
"title": "qui est esse",
"body": "est rerum tempore vitae\nsequi sint nihil reprehenderit dolor beatae ea dolores neque\nfugiat blanditiis voluptate porro vel nihil molestiae ut reiciendis\nqui aperiam non debitis possimus qui neque nisi nulla"
}
]
POSTリクエストの送信
Wgetでは送信できます POST
次のようなコマンドを実行してリクエストします。
- wget --method==[post] -O- --body-data=[ body in json format ] --header=[ String ] [ URL ]
次のコマンドを実行します。
- wget --method=post -O- -q --body-data='{"title": "Wget POST","body": "Wget POST example body","userId":1}' --header=Content-Type:application/json https://jsonplaceholder.typicode.com/posts
上記のコマンドでは、 wget
送信するには POST
JSONプレースホルダーにリクエストして新しい投稿を作成します。 あなたは method
に post
、 Header
に Content-Type:application/json
そして、以下を送信しました request body
それに:{"title": "Wget POST","body": "Wget POST example body","userId":1}
.
出力は次のようになります。
Output{
"title": "Wget POST",
"body": "Wget POST example body",
"userId": 1,
"id": 101
}
PUTリクエストの送信
Wgetでは送信できます PUT
次のようなコマンドを実行してリクエストします。
- wget --method==[put] -O- --body-data=[ body in json format ] --header=[ String ] [ URL ]
次のコマンドを実行します。
- wget --method=put -O- -q --body-data='{"title": "Wget PUT", "body": "Wget PUT example body", "userId": 1, "id":1}' --header=Content-Type:application/json https://jsonplaceholder.typicode.com/posts/1
上記のコマンドで使用した wget
送信するには PUT
このRESTAPIの最初の投稿を編集するには、JSONプレースホルダーにリクエストしてください。 あなたは method
に put
、 Header
に Content-Type:application/json
そして、以下を送信しました request body
それに:{"title": "Wget PUT", "body": "Wget PUT example body", "userId": 1, "id":1}
.
出力は次のようになります。
Output{
"body": "Wget PUT example body",
"title": "Wget PUT",
"userId": 1,
"id": 1
}
DELETEリクエストの送信
Wgetでは送信できます DELETE
次のようなコマンドを実行してリクエストします。
- wget --method==[delete] -O- [ URL ]
次のコマンドを実行します。
- wget --method=delete -O- -q --header=Content-Type:application/json https://jsonplaceholder.typicode.com/posts/1
上記のコマンドで使用した wget
送信するには DELETE
このRESTAPIの最初の投稿を削除するには、JSONプレースホルダーにリクエストしてください。 あなたは method
に delete
、削除する投稿をに設定します 1
URLで。
出力は次のようになります。
Output{}
このセクションでは、Wgetを使用して送信する方法を学びました GET
, POST
, PUT
と DELETE
ヘッダーフィールドが1つしかないリクエスト。 次のセクションでは、DigitalOceanアカウントでドロップレットを作成および管理するために、複数のヘッダーフィールドを送信する方法を学習します。
DigitalOceanドロップレットの作成と管理
このセクションでは、前のセクションで学んだことを適用し、Wgetを使用してDigitalOceanアカウントでドロップレットを作成および管理します。 しかし、それを行う前に、複数を送信する方法を学びます headers
HTTPメソッドのフィールド。
複数のヘッダーを送信するコマンドの構文は次のようになります。
- wget --header=[ first header ] --header=[ second header] --header=[ N header] [ URL ]
あなたは多くを持つことができます headers
繰り返して好きなフィールド --header
必要な回数だけオプションを選択できます。
ドロップレットを作成したり、DigitalOcean APIで他のリソースとやり取りしたりするには、2つのリクエストヘッダーを送信する必要があります。
Content-Type: application/json
Authorization: Bearer your_personal_access_token
前のセクションで最初のヘッダーをすでに見ました。 2番目のヘッダーは、アカウントを認証できるようにするものです。 それはという名前の文字列を持っています Bearer
続いて、DigitalOceanアカウントのパーソナルアクセストークン。
次のコマンドを実行して、置き換えます your_personal_access_token
DigitalOceanパーソナルアクセストークンを使用して:
- wget --method=post -O- -q --header="Content-Type: application/json" --header="Authorization: Bearer your_personal_access_token" --body-data='{"name":"Wget-example","region":"nyc1","size":"s-1vcpu-1gb","image":"ubuntu-20-04-x64","tags": ["Wget-tutorial"]}' https://api.digitalocean.com/v2/droplets
上記のコマンドを使用して、 ubuntu-20-04-x64
の液滴 nyc1
名前の付いた地域 Wget-example
と 1vcpu
と 1gb
メモリの、そしてあなたはタグをに設定しました Wget-tutorial
. の属性の詳細については、 body-data
フィールドについては、DigitalOceanAPIドキュメントを参照してください。
出力は次のようになります。
Output{"droplet":{"id":237171073,"name":"Wget-example","memory":1024,"vcpus":1,"disk":25,"locked":false,"status":"new","kernel":null,"created_at":"2021-03-16T12:38:59Z","features":[],"backup_ids":[],"next_backup_window":null,"snapshot_ids":[],"image":{"id":72067660,"name":"20.04 (LTS) x64","distribution":"Ubuntu","slug":"ubuntu-20-04-x64","public":true,"regions":["nyc3","nyc1","sfo1","nyc2","ams2","sgp1","lon1","ams3","fra1","tor1","sfo2","blr1","sfo3"],"created_at":"2020-10-20T16:34:30Z","min_disk_size":15,"type":"base","size_gigabytes":0.52,"description":"Ubuntu 20.04 x86","tags":[],"status":"available"},"volume_ids":[],"size":{"slug":"s-1vcpu-1gb","memory":1024,"vcpus":1,"disk":25,"transfer":1.0,"price_monthly":5.0,"price_hourly":0.00744,"regions":["ams2","ams3","blr1","fra1","lon1","nyc1","nyc2","nyc3","sfo1","sfo3","sgp1","tor1"],"available":true,"description":"Basic"},"size_slug":"s-1vcpu-1gb","networks":{"v4":[],"v6":[]},"region":{"name":"New York 1","slug":"nyc1","features":["backups","ipv6","metadata","install_agent","storage","image_transfer"],"available":true,"sizes":["s-1vcpu-1gb","s-1vcpu-1gb-intel","s-1vcpu-2gb","s-1vcpu-2gb-intel","s-2vcpu-2gb","s-2vcpu-2gb-intel","s-2vcpu-4gb","s-2vcpu-4gb-intel","s-4vcpu-8gb","c-2","c2-2vcpu-4gb","s-4vcpu-8gb-intel","g-2vcpu-8gb","gd-2vcpu-8gb","s-8vcpu-16gb","m-2vcpu-16gb","c-4","c2-4vcpu-8gb","s-8vcpu-16gb-intel","m3-2vcpu-16gb","g-4vcpu-16gb","so-2vcpu-16gb","m6-2vcpu-16gb","gd-4vcpu-16gb","so1_5-2vcpu-16gb","m-4vcpu-32gb","c-8","c2-8vcpu-16gb","m3-4vcpu-32gb","g-8vcpu-32gb","so-4vcpu-32gb","m6-4vcpu-32gb","gd-8vcpu-32gb","so1_5-4vcpu-32gb","m-8vcpu-64gb","c-16","c2-16vcpu-32gb","m3-8vcpu-64gb","g-16vcpu-64gb","so-8vcpu-64gb","m6-8vcpu-64gb","gd-16vcpu-64gb","so1_5-8vcpu-64gb","m-16vcpu-128gb","c-32","c2-32vcpu-64gb","m3-16vcpu-128gb","m-24vcpu-192gb","g-32vcpu-128gb","so-16vcpu-128gb","m6-16vcpu-128gb","gd-32vcpu-128gb","m3-24vcpu-192gb","g-40vcpu-160gb","so1_5-16vcpu-128gb","m-32vcpu-256gb","gd-40vcpu-160gb","so-24vcpu-192gb","m6-24vcpu-192gb","m3-32vcpu-256gb","so1_5-24vcpu-192gb"]},"tags":["Wget-tutorial"]},"links":{"actions":[{"id":1164336542,"rel":"create","href":"https://api.digitalocean.com/v2/actions/1164336542"}]}}
上記のような出力が表示された場合は、ドロップレットが正常に作成されたことを意味します。
次に、タグが付いているアカウント内のすべてのドロップレットのリストを取得しましょう Wget-tutorial
. 次のコマンドを実行して、置き換えます your_personal_access_token
DigitalOceanパーソナルアクセストークンを使用して:
- wget -O- -q --header="Content-Type: application/json" --header="Authorization: Bearer your_personal_access_token" https://api.digitalocean.com/v2/droplets?tag_name=Wget-tutorial
作成したばかりのドロップレットの名前が出力に表示されます。
Output{"droplets":[{"id":237171073,"name":"Wget-example","memory":1024,"vcpus":1,"disk":25,"locked":false,"status":"active","kernel":null,"created_at":"2021-03-16T12:38:59Z","features":["private_networking"],"backup_ids":[],"next_backup_window":null,"snapshot_ids":[],"image":{"id":72067660,"name":"20.04 (LTS) x64","distribution":"Ubuntu","slug":"ubuntu-20-04-x64","public":true,"regions":["nyc3","nyc1","sfo1","nyc2","ams2","sgp1","lon1","ams3","fra1","tor1","sfo2","blr1","sfo3"],"created_at":"2020-10-20T16:34:30Z","min_disk_size":15,"type":"base","size_gigabytes":0.52,"description":"Ubuntu 20.04 x86","tags":[],"status":"available"},"volume_ids":[],"size":{"slug":"s-1vcpu-1gb","memory":1024,"vcpus":1,"disk":25,"transfer":1.0,"price_monthly":5.0,"price_hourly":0.00744,"regions":["ams2","ams3","blr1","fra1","lon1","nyc1","nyc2","nyc3","sfo1","sfo3","sgp1","tor1"],"available":true,"description":"Basic"},"size_slug":"s-1vcpu-1gb","networks":{"v4":[{"ip_address":"10.116.0.2","netmask":"255.255.240.0","gateway":"","type":"private"},{"ip_address":"204.48.20.197","netmask":"255.255.240.0","gateway":"204.48.16.1","type":"public"}],"v6":[]},"region":{"name":"New York 1","slug":"nyc1","features":["backups","ipv6","metadata","install_agent","storage","image_transfer"],"available":true,"sizes":["s-1vcpu-1gb","s-1vcpu-1gb-intel","s-1vcpu-2gb","s-1vcpu-2gb-intel","s-2vcpu-2gb","s-2vcpu-2gb-intel","s-2vcpu-4gb","s-2vcpu-4gb-intel","s-4vcpu-8gb","c-2","c2-2vcpu-4gb","s-4vcpu-8gb-intel","g-2vcpu-8gb","gd-2vcpu-8gb","s-8vcpu-16gb","m-2vcpu-16gb","c-4","c2-4vcpu-8gb","s-8vcpu-16gb-intel","m3-2vcpu-16gb","g-4vcpu-16gb","so-2vcpu-16gb","m6-2vcpu-16gb","gd-4vcpu-16gb","so1_5-2vcpu-16gb","m-4vcpu-32gb","c-8","c2-8vcpu-16gb","m3-4vcpu-32gb","g-8vcpu-32gb","so-4vcpu-32gb","m6-4vcpu-32gb","gd-8vcpu-32gb","so1_5-4vcpu-32gb","m-8vcpu-64gb","c-16","c2-16vcpu-32gb","m3-8vcpu-64gb","g-16vcpu-64gb","so-8vcpu-64gb","m6-8vcpu-64gb","gd-16vcpu-64gb","so1_5-8vcpu-64gb","m-16vcpu-128gb","c-32","c2-32vcpu-64gb","m3-16vcpu-128gb","m-24vcpu-192gb","g-32vcpu-128gb","so-16vcpu-128gb","m6-16vcpu-128gb","gd-32vcpu-128gb","m3-24vcpu-192gb","g-40vcpu-160gb","so1_5-16vcpu-128gb","m-32vcpu-256gb","gd-40vcpu-160gb","so-24vcpu-192gb","m6-24vcpu-192gb","m3-32vcpu-256gb","so1_5-24vcpu-192gb"]},"tags":["Wget-tutorial"],"vpc_uuid":"5ee0a168-39d1-4c60-a89c-0b47390f3f7e"}],"links":{},"meta":{"total":1}}
さあ、 id
作成したドロップレットのを使用して、ドロップレットを削除します。 次のコマンドを実行して、置き換えます your_personal_access_token
DigitalOceanパーソナルアクセストークンと your_droplet_id
ドロップレットで id
:
- wget --method=delete -O- --header="Content-Type: application/json" --header="Authorization: Bearer your_personal_access_token" https://api.digitalocean.com/v2/droplets/your_droplet_id
上記のコマンドで、ドロップレットを追加しました id
URLに移動して削除します。 あなたが見ているなら 204 No Content
出力では、ドロップレットの削除に成功したことを意味します。
このセクションでは、Wgetを使用して複数のヘッダーを送信しました。 次に、DigitalOceanアカウントでドロップレットを作成して管理しました。
結論
このチュートリアルでは、Wgetを使用して、安定したネットワーク状態と不安定なネットワーク状態でファイルをダウンロードし、RESTAPIエンドポイントと対話しました。 次に、この知識を使用して、DigitalOceanアカウントでドロップレットを作成および管理しました。 Wgetの詳細については、このツールのマニュアルページにアクセスしてください。 その他のLinuxコマンドラインチュートリアルについては、DigitalOceanコミュニティチュートリアルをご覧ください。