作者选择了 COVID-19 救援基金作为 Write for Donations计划的一部分接受捐款。
介绍
Wget是一个网络命令行工具,允许您下载文件并与REST API进行交互。它支持互联网协议HTTP
,HTTPS
,FTP
和FTPS
。Wget可以处理不稳定和缓慢的网络连接。在下载失败的情况下,Wget将继续尝试直到整个文件被恢复。
您还可以使用 Wget 与 REST API 进行交互,而无需安装任何额外的外部程序,您可以直接在终端中执行GET
,POST
,PUT
和DELETE``HTTP
请求。
在本教程中,您将使用Wget下载文件,与REST API终端进行交互,并在您的DigitalOcean帐户中创建和管理Droplet。
您可以使用本地系统或远程服务器打开终端并在那里运行命令。
前提条件
要完成本教程,您将需要:
- Wget已安装. 大多数Linux发行版都默认安装了Wget。 要检查,请在您的终端键入‘wget’并按‘ENTER’。 如果未安装,将显示:‘command not found’。 您可以通过运行以下命令来安装它:
sudo apt-get install wget
. - A DigitalOcean account. 如果您没有一个, 注册新帐户。 A DigitalOcean Personal Access Token,您可以通过DigitalOcean控制面板创建它。 此处可以找到该操作的说明: 如何生成个人访问代码。
下载文件
在本节中,您将使用Wget来定制您的下载体验,例如,您将学习如何下载单个文件和多个文件,在不稳定的网络条件下处理文件下载,并在下载中断的情况下恢复下载。
首先,创建一个目录来保存您将在本教程中下载的文件:
1mkdir -p DigitalOcean-Wget-Tutorial/Downloads
使用上述命令,您创建了一个名为DigitalOcean-Wget-Tutorial
的目录,并在其内部,您创建了一个名为下载
的子目录。
导航到DigitalOcean-Wget-Tutorial
目录:
1cd DigitalOcean-Wget-Tutorial
您已经成功创建了目录,您将存储您下载的文件。
(下载一个文件)
要使用Wget下载文件,请键入wget
,然后是您想要下载的文件的URL。
让我们使用以下命令下载一个小型版本的jQuery:
1wget https://code.jquery.com/jquery-3.6.0.min.js
不要担心如果你不知道jQuery是什么 - 你可能已经下载了任何在互联网上可用的文件. 所有你需要知道的是,你成功使用Wget从互联网上下载文件。
结果将看起来像这样:
1[secondary_label Output]
2--2021-07-21 16:25:11-- https://code.jquery.com/jquery-3.6.0.min.js
3Resolving code.jquery.com (code.jquery.com)... 69.16.175.10, 69.16.175.42, 2001:4de0:ac18::1:a:1a, ...
4Connecting to code.jquery.com (code.jquery.com)|69.16.175.10|:443... connected.
5HTTP request sent, awaiting response... 200 OK
6Length: 89501 (87K) [application/javascript]
7Saving to: ‘jquery-3.6.0.min.js’
8
9jquery-3.6.0.min.js 100%[===================>] 87.40K 114KB/s in 0.8s
10
112021-07-21 16:25:13 (114 KB/s) - ‘jquery-3.6.0.min.js’ saved [89501/89501]
根据上述输出,您已成功下载并将名为 `jquery-3.6.0.min.js’的文件保存到当前目录中。
您可以使用以下命令检查当前目录的内容:
1ls
结果将看起来像这样:
1[secondary_label Output]
2Downloads jquery-3.6.0.min.js
指定下载的文件的文件名称
在下载文件时,Wget 默认地使用该文件在服务器上使用的名称来存储它. 您可以通过使用 -O
选项来更改该名称。
下载您之前下载的 jQuery 文件,但这次将其保存为不同的名称:
1wget -O jquery.min.js https://code.jquery.com/jquery-3.6.0.min.js
使用上述命令,您将 jQuery 文件设置为jquery.min.js
而不是jquery-3.6.0.min.js
。
结果将看起来像这样:
1[secondary_label Output]
2--2021-07-21 16:27:01-- https://code.jquery.com/jquery-3.6.0.min.js
3Resolving code.jquery.com (code.jquery.com)... 69.16.175.10, 69.16.175.42, 2001:4de0:ac18::1:a:2b, ...
4Connecting to code.jquery.com (code.jquery.com)|69.16.175.10|:443... connected.
5HTTP request sent, awaiting response... 200 OK
6Length: 89501 (87K) [application/javascript]
7Saving to: ‘jquery.min.js’
8
9jquery.min.js 100%[==================================>] 87.40K 194KB/s in 0.4s
10
112021-07-21 16:27:03 (194 KB/s) - ‘jquery.min.js’ saved [89501/89501]
根据上述输出,您已成功下载 jQuery 文件并将其保存为 jquery.min.js
。
您可以使用ls
命令列出当前目录的内容,在那里您将看到jquery.min.js
文件:
1ls
结果将看起来像这样:
1[secondary_label Output]
2Downloads jquery-3.6.0.min.js jquery.min.js
到目前为止,你已经使用wget
下载文件到当前目录. 接下来,你将下载到一个特定的目录。
** 将文件下载到特定目录**
当下载文件时,Wget 默认地将其存储在当前目录中. 您可以通过使用 -P
选项来更改,指定您想要保存文件的目录名称。
下载您之前下载的 jQuery 文件,但这次将其保存到下载
子目录中。
1wget -P Downloads/ https://code.jquery.com/jquery-3.6.0.min.js
结果将看起来像这样:
1[secondary_label Output]
2--2021-07-21 16:28:50-- https://code.jquery.com/jquery-3.6.0.min.js
3Resolving code.jquery.com (code.jquery.com)... 69.16.175.42, 69.16.175.10, 2001:4de0:ac18::1:a:2b, ...
4Connecting to code.jquery.com (code.jquery.com)|69.16.175.42|:443... connected.
5HTTP request sent, awaiting response... 200 OK
6Length: 89501 (87K) [application/javascript]
7Saving to: ‘Downloads/jquery-3.6.0.min.js’
8
9jquery-3.6.0.min.js 100%[==================================>] 87.40K 43.6KB/s in 2.0s
10
112021-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
文件被保存到下载
目录中。
如果您使用下载
命令列出下载
目录的内容,您将看到 jQuery 文件:
运行ls
命令:
1ls Downloads
结果将看起来像这样:
1[secondary_label Output]
2jquery-3.6.0.min.js
** 关闭 Wget 的输出**
默认情况下,Wget 在下载文件时将大量信息输出到终端,您可以使用 -q
选项关闭所有输出。
下载 jQuery 文件,但这次没有显示任何输出:
1wget -q https://code.jquery.com/jquery-3.6.0.min.js
您不会看到任何输出,但如果使用ls
命令列出当前目录的内容,您会发现一个名为jquery-3.6.0.min.js.1
的文件:
1ls
结果将看起来像这样:
1[secondary_label Output]
2Downloads 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
选项与--显示进度
选项一起隐藏任何其他输出。
下载 jQuery 文件,但这一次只显示下载进度栏:
1wget -q --show-progress https://code.jquery.com/jquery-3.6.0.min.js
结果将看起来像这样:
1[secondary_label Output]
2jquery-3.6.0.min.js.2 100%[================================================>] 87.40K 207KB/s in 0.4s
使用ls
命令来检查当前目录的内容,你会找到你刚刚下载的文件名为jquery-3.6.0.min.js.2
。
从这一点开始,您将在大多数随后的 Wget 命令中使用-q
和--show-progress
选项。
到目前为止,您只下载了一个文件,接下来,您将下载多个文件。
下载多个文件
要使用Wget下载多个文件,您需要创建一个.txt
文件并插入您想要下载的文件的URL。在插入文件内部的URL后,使用wget
命令,然后使用-i
选项,然后是包含URL的.txt
文件的名称。
创建一个名为images.txt
的文件:
1nano images.txt
在images.txt
中,添加以下 URL:
1[label images.txt]
2https://cdn.pixabay.com/photo/2016/12/13/05/15/puppy-1903313__340.jpg
3https://cdn.pixabay.com/photo/2016/01/05/17/51/maltese-1123016__340.jpg
4https://cdn.pixabay.com/photo/2020/06/30/22/34/dog-5357794__340.jpg
这些 URL 链接到 Pixabay上发现的三张狗的随机图像。
现在,您将使用您之前学到的-P
、-q
和--show-progress
选项的-i
选项来下载所有三个图像到下载
目录:
1wget -i images.txt -P Downloads/ -q --show-progress
结果将看起来像这样:
1[secondary_label Output]
2puppy-1903313__340.jp 100%[=========================>] 26.44K 93.0KB/s in 0.3s
3maltese-1123016__340. 100%[=========================>] 50.81K --.-KB/s in 0.06s
4dog-5357794__340.jpg 100%[=========================>] 30.59K --.-KB/s in 0.07s
如果你使用下载
命令列出下载
目录的内容,你会发现你刚刚下载的三个图像的名称:
1ls Downloads
结果将看起来像这样:
1[secondary_label Output]
2dog-5357794__340.jpg jquery-3.6.0.min.js maltese-1123016__340.jpg puppy-1903313__340.jpg
** 限制下载速度**
到目前为止,你已经下载了最多可用的下载速度的文件,但是,你可能想要限制下载速度以保护其他任务的资源。你可以通过使用--limit-rate
选项来限制下载速度,然后使用k
字母和k
字母来限制下载速度。
下载images.txt
文件中的第一个图像以15 kB/S
的速度到下载
目录:
1wget --limit-rate 15k -P Downloads/ -q --show-progress https://cdn.pixabay.com/photo/2016/12/13/05/15/puppy-1903313__340.jpg
结果将看起来像这样:
1[secondary_label Output]
2puppy-1903313__340.jpg.1 100%[====================================================>] 26.44K 16.1KB/s in 1.6s
如果你使用下载
命令检查下载
目录的内容,你会看到你刚刚下载的文件名为puppy-1903313__340.jpg.1
。
当下载已存在的文件时,Wget 会创建一个新的文件,而不是重写现有文件。
** 重写下载的文件**
在下面的代码中,您将首先将images.txt
文件中列出的第二张图像下载到当前目录,然后将其重写。
首先,下载第二张图像到当前目录并将名称设置为image2.jpg
:
1wget -O image2.jpg -q --show-progress https://cdn.pixabay.com/photo/2016/12/13/05/15/puppy-1903313__340.jpg
结果将看起来像这样:
1[secondary_label Output]
2image2.jpg 100%[====================================================>] 26.44K --.-KB/s in 0.04s
如果你用ls
命令检查当前目录的内容,你会看到你刚刚下载的文件名为image2.jpg
。
如果您想重写此image2.jpg
文件,您可以运行您之前运行的相同命令:
1wget -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。
1wget --limit-rate 1k -q --show-progress https://cdn.pixabay.com/photo/2018/03/07/19/51/grass-3206938__340.jpg
要恢复下载,请通过 -c
选项. 请注意,如果您在同一个目录中运行该命令,则此操作只会起作用:
1wget -c --limit-rate 1k -q --show-progress https://cdn.pixabay.com/photo/2018/03/07/19/51/grass-3206938__340.jpg
到目前为止,您只在前台下载了文件,接下来,您将在后台下载文件。
** 在背景下下载**
您可以通过使用 -b
选项下载背景中的文件。
运行下面的命令,从 Pixabay下载一个狗的随机图像:
1wget -b https://cdn.pixabay.com/photo/2018/03/07/19/51/grass-3206938__340.jpg
当您在背景下下载文件时,Wget 在当前目录中创建一个名为wget-log
的文件,并将所有输出重定向到该文件。
1tail -f wget-log
结果将看起来像这样:
1[secondary_label Output]
2Resolving cdn.pixabay.com (cdn.pixabay.com)... 104.18.20.183, 104.18.21.183, 2606:4700::6812:14b7, ...
3Connecting to cdn.pixabay.com (cdn.pixabay.com)|104.18.20.183|:443... connected.
4HTTP request sent, awaiting response... 200 OK
5Length: 33520 (33K) [image/jpeg]
6Saving to: ‘grass-3206938__340.jpg’
7
8 0K .......... .......... .......... .. 100% 338K=0.1s
9
102021-07-20 23:49:52 (338 KB/s) - ‘grass-3206938__340.jpg’ saved [33520/33520]
** 设置一个时限**
到目前为止,我们已经假设您试图下载文件的服务器正在正常工作,但是,让我们假设服务器不正常工作,您可以使用 Wget 先限制您等待服务器响应的时间,然后限制 Wget 试图到达服务器的次数。
如果您想下载文件,但不确定服务器是否正常工作,您可以使用-T
选项设置时间缩短,然后以秒数表示时间。
在下列命令中,您将时隔设置为5
秒:
1wget -T 5 -q --show-progress https://cdn.pixabay.com/photo/2016/12/13/05/15/puppy-1903313__340.jpg
** 设置最大尝试次数**
您还可以设置Wget在被中断后尝试下载文件的次数,通过--tries
选项,然后是尝试次数。
通过运行下面的命令,您将尝试次数限制为3
:
1wget --tries=3 -q --show-progress https://cdn.pixabay.com/photo/2018/03/07/19/51/grass-3206938__340.jpg
如果你想尝试无限期,你可以通过Inf
旁边的--tries
选项:
1wget --tries=inf -q --show-progress https://cdn.pixabay.com/photo/2018/03/07/19/51/grass-3206938__340.jpg
在本节中,您使用Wget下载单个文件和多个文件,恢复下载并处理网络问题,在下一节中,您将学习如何与REST API终端进行交互。
与 REST API 互动
在本节中,您将使用Wget与REST API进行交互,而无需安装外部程序,您将学习发送最常用的HTTP
方法的语法:GET
,POST
,PUT
和DELETE
。
我们将使用 JSONPlaceholder作为模糊的REST API. JSONPlaceholder是一个免费的在线REST API,您可以使用用于伪造数据。
** 发送 GET 请求**
Wget 允许您通过运行一个看起来如下命令来发送GET
请求:
1wget -O- [ URL ]
在上述命令中,在-O
选项之后的-
指的是标准输出,所以Wget会将URL的输出发送到终端,而不是发送到文件,就像你在上一节所做的。
在终端窗口中运行以下命令:
1wget -O- https://jsonplaceholder.typicode.com/posts?_limit=2
在上述命令中,您使用wget
将GET
请求发送到 JSON Placeholder以从REST API
中获取两个帖子。
结果将看起来像这样:
1[secondary_label Output]
2--2021-07-21 16:52:51-- https://jsonplaceholder.typicode.com/posts?_limit=2
3Resolving jsonplaceholder.typicode.com (jsonplaceholder.typicode.com)... 104.21.10.8, 172.67.189.217, 2606:4700:3032::6815:a08, ...
4Connecting to jsonplaceholder.typicode.com (jsonplaceholder.typicode.com)|104.21.10.8|:443... connected.
5HTTP request sent, awaiting response... 200 OK'
6Length: 600 [application/json]
7Saving to: ‘STDOUT’
8
9- 0%[ ] 0 --.-KB/s [
10 {
11 "userId": 1,
12 "id": 1,
13 "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
14 "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
15 },
16 {
17 "userId": 1,
18 "id": 2,
19 "title": "qui est esse",
20 "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"
21 }
22- 100%[==================================>] 600 --.-KB/s in 0s
23
242021-07-21 16:52:53 (4.12 MB/s) - written to stdout [600/600]
请注意该行说HTTP 请求发送,等待响应... 200 OK
,这意味着您已成功发送到 JSONPlaceholder 的GET
请求。
如果输出太多了,你可以使用你在上一节中学到的 -q
选项来限制输出到 GET
请求的结果:
1wget -O- -q https://jsonplaceholder.typicode.com/posts?_limit=2
结果将看起来像这样:
1[secondary_label Output]
2[
3 {
4 "userId": 1,
5 "id": 1,
6 "title": "sunt aut facere repellat provident occaecati excepturi optio reprehenderit",
7 "body": "quia et suscipit\nsuscipit recusandae consequuntur expedita et cum\nreprehenderit molestiae ut ut quas totam\nnostrum rerum est autem sunt rem eveniet architecto"
8 },
9 {
10 "userId": 1,
11 "id": 2,
12 "title": "qui est esse",
13 "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"
14 }
15]
发送邮件请求
Wget 允许您通过运行一个看起来如下命令来发送POST
请求:
1wget --method==[post] -O- --body-data=[ body in json format ] --header=[ String ] [ URL ]
运行以下命令:
1wget --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 Placeholder以创建一个新帖子.您将method
设置为post
,Header
设置为Content-Type:application/json
,并将以下请求体
发送到它:Wget POST
,body
:Wget POST示例体
,userId
:1}。
结果将看起来像这样:
1[secondary_label Output]
2{
3 "title": "Wget POST",
4 "body": "Wget POST example body",
5 "userId": 1,
6 "id": 101
7}
** 发送 PUT 请求**
Wget 允许您通过运行一个看起来如下命令来发送PUT
请求:
1wget --method==[put] -O- --body-data=[ body in json format ] --header=[ String ] [ URL ]
运行以下命令:
1wget --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」向 JSON Placeholder发送一个「PUT」请求,以编辑这个REST API中的第一个帖子。你将「method」设置为「put」、「Header」设置为「Content-Type:application/json」并发送以下的「request body」到它:`{"title": "Wget PUT", "body": "Wget PUT 示例体", "userId": 1, "id":1}。
结果将看起来像这样:
1[secondary_label Output]
2{
3 "body": "Wget PUT example body",
4 "title": "Wget PUT",
5 "userId": 1,
6 "id": 1
7}
** 发送删除请求**
Wget 允许您通过运行一个看起来如下命令来发送DELETE
请求:
1wget --method==[delete] -O- [ URL ]
运行以下命令:
1wget --method=delete -O- -q --header=Content-Type:application/json https://jsonplaceholder.typicode.com/posts/1
在上面的命令中,你用wget
发送一个DELETE
请求到JSON Placeholder(https://jsonplaceholder.typicode.com)删除这个REST API中的第一个帖子,你将方法
设置为删除
,并在URL中设置要删除的帖子为1
。
结果将看起来像这样:
1[secondary_label Output]
2{}
在本节中,您将学习如何使用 Wget 发送GET
、POST
、PUT
和DELETE
请求,只使用一个标题字段,在下一节中,您将学习如何发送多个标题字段,以便在您的 DigitalOcean 帐户中创建和管理 Droplet。
创建和管理数字海洋滴
在本节中,您将应用您在上一节中学到的内容,并使用Wget在您的DigitalOcean帐户中创建和管理Droplet,但在您这样做之前,您将学习如何用HTTP方法发送多个标题
字段。
发送多个标题的命令语法看起来像这样:
1wget --header=[ first header ] --header=[ second header] --header=[ N header] [ URL ]
您可以有尽可能多的标题
字段,通过重复 - 标题
选项,只要您需要。
要创建 Droplet 或与 DigitalOcean API 中的任何其他资源进行交互,您需要发送两个请求标题:
1Content-Type: application/json
2Authorization: Bearer your_personal_access_token
您已经在上一节看到第一个标题了。第二个标题是允许您验证您的帐户。它有一个名为承包者
的字符串,其次是您的DigitalOcean帐户个人访问代码。
运行以下命令,以您的 DigitalOcean 个人访问代码代替 your_personal_access_token
:
1wget --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
使用上述命令,您在nyc1
区域中创建了一个名为Wget-example
的ubuntu-20-04-x64
Droplet,具有1vcpu
和1gb
内存,并将标签设置为Wget-tutorial
。
结果将看起来像这样:
1[secondary_label Output]
2{"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"}]}}
如果你看到一个类似于上面的输出,这意味着你已经成功创建了一个Droplet。
现在让我们在您的帐户中列出所有具有标签Wget-tutorial
的Dropplets。 运行以下命令,以您的DigitalOcean个人访问代码代替your_personal_access_token
:
1wget -O- -q --header="Content-Type: application/json" --header="Authorization: Bearer your_personal_access_token" https://api.digitalocean.com/v2/droplets?tag_name=Wget-tutorial
您应该在输出中看到您刚刚创建的Droplet的名称:
1[secondary_label Output]
2{"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}}
现在让我们拿出你创建的Droplet的id
,然后使用它来删除Droplet。 运行以下命令,以你的DigitalOcean个人访问代码代替your_personal_access_token
,以你的Droplet id
代替your_droplet_id
:
1wget --method=delete -O- --header="Content-Type: application/json" --header="Authorization: Bearer your_personal_access_token" https://api.digitalocean.com/v2/droplets/your_droplet_id
在上述命令中,您已将您的 Droplet id 添加到 URL 以删除它. 如果您在输出中看到一个
204 无内容',这意味着您成功删除 Droplet。
在本节中,您使用Wget发送多个标题,然后在您的DigitalOcean帐户中创建并管理Droplet。
结论
在本教程中,您使用 Wget 在稳定和不稳定的网络条件下下下载文件,并与 REST API 终端进行交互。 然后您使用这些知识在您的 DigitalOcean 帐户中创建和管理 Droplet。 如果您想了解更多关于 Wget 的信息,请访问 此工具的手册页面. 有关更多 Linux 命令行教程,请访问 DigitalOcean 社区教程。