在Arch Linux上使用Makepkg
在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。
官方的Vultr Go库可用于与Vultr API进行交互。Vultr API使您可以控制与帐户关联的资源,包括服务器,dns,防火墙,快照,网络等。本教程将通过创建一个简单的应用程序来获取有关服务器信息的使用Go API官方客户端的介绍。
首先,我们将从创建一个新模块(项目)开始。通常,您将使用代码存储库的URL作为模块名称,但这超出了本教程的范围。现在,我们将使用serverinfo作为模块名称。
要创建项目,请运行以下命令:
# Create the folder in the current directory.
mkdir serverinfo
# Enter the new folder.
cd serverinfo
# Initialize the module.
go mod init serverinfo
接下来,我们将从GitHub(一个代码托管站点)下载API库。要下载库,您需要使用go get
命令。它将自动下载库及其依赖项,同时将其添加到go.mod文件中。在您先前打开的同一终端中,输入以下命令:
go get github.com/vultr/govultr
要使用API客户端,您将需要API密钥。您可以从信息中心 “ 帐户”部分的 “ API”标签中检索API密钥。您还需要授权您的IP地址以使用API密钥。您可以转到ifconfig.me来找到您的IP地址。请注意,您正在寻找的是公共 IP,而不是私有IP。你的私有IP是你会发现在你的计算机上的网络设置的东西,并且是在以下CIDR范围之一:10.0.0.0/8,172.16.0.0/12或192.168.0.0/16。
拥有IP地址后,将其添加到“ 访问控制”部分下。在/后面的框中,键入32
。/32
是网络掩码的意思 255.255.255.255
。这意味着该范围仅包含您的IP。
警告:保护API密钥就像保护密码一样。API密钥可以访问您的���个帐户,包括帐单,服务器和存储。
现在,我们将开始研究该程序。打开您在选择的编辑器中创建的文件夹,然后创建一个名为的文件main.go
。
在文件内,键入或复制粘贴以下代码:
package main
import (
"context"
"fmt"
"os"
"github.com/vultr/govultr"
)
func main() {
}
该package main
告诉转到我们正在创建一个命令,而不是一个图书馆。import语句声明我们将使用的依赖项。func main()
是运行程序时调用的函数。
下一步是初始化API客户端。为此,我们需要使用 govultr.NewClient(http.Client,string)函数。在main()函数内添加以下代码:
client := govultr.NewClient(nil, "YOURAPIKEY")
替换YOURAPIKEY
为您先前检索的API密钥。
让我们更仔细地看一下这段代码。在的左侧:=
,我们有 client
。那就是变量的名称。变量存储值。在右侧,我们有一个对govultr.NewClient的函数调用。第一个参数为nil,因为我们不需要更改默认的HTTP客户端。第二个参数是我们用来认证自己的API密钥。该:=
运营商分配右侧到左侧,在这种情况下,函数调用的结果client
。
我们的程序仍然没有执行任何操作。为了使其有用,我们将从Vultr中检索有关服务器的信息。我们将使用 govultr.Client.Server.List(context.Context)([] govultr.Server,错误) 函数。在main()函数的末尾添加以下代码:
servers, err := client.Server.List(context.Background())
if err != nil {
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
os.Exit(1)
}
在这段代码中,我们正在调用API函数来检索服务器信息。不必担心上下文的含义,因为这是一个更高级的主题。现在,我们只需要知道上下文可以 控制API客户端的运行方式。context.Background()返回一个空的 context。在将服务器信息检索到两个变量 server和err之后,我们检查是否有错误。如果是这样,我们将错误告知用户,并以代码1(错误)退出。
现在我们在服务器变量([] govultr.Server)中有了服务器阵列,我们可以实际显示它了。在main()函数的末尾添加以下代码:
fmt.Println("Servers:")
for _, server := range servers {
fmt.Printf(" %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n",
server.Label,
server.MainIP,
server.Location,
server.PendingCharges,
server.CurrentBandwidth,
server.AllowedBandwidth,
)
}
首先,我们打印(显示)标题Servers:
。然后,我们遍历 服务器数组,通过将索引分配给来忽略索引,并将_
当前服务器分配给server变量。在循环内部,我们显示服务器的标签,IP地址,位置,待处理的费用,当前带宽和允许的带宽。为了有效地执行此操作,我们使用格式字符串,该字符串看起来像 " %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n"
。的%s
装置来替代下一个字符串,而%.2f
装置以打印下一浮子(十进制数)四舍五入到小数点后2位。其余格式字符串按原样打印。
此时,您的代码应如下所示:
package main
import (
"context"
"fmt"
"os"
"github.com/vultr/govultr"
)
func main() {
client := govultr.NewClient(nil, "YOURAPIKEY")
servers, err := client.Server.List(context.Background())
if err != nil {
fmt.Fprintf(os.Stderr, "Error: %v\n", err)
os.Exit(1)
}
fmt.Println("Servers:")
for _, server := range servers {
fmt.Printf(" %s (%s) - %s - $%s pending charges - %.2f/%s GB bandwidth\n",
server.Label,
server.MainIP,
server.Location,
server.PendingCharges,
server.CurrentBandwidth,
server.AllowedBandwidth,
)
}
}
现在,我们可以运行代码。返回到我们先前打开的终端,然后输入命令go run
。输出将类似于以下内容:
Servers:
server1 (198.51.100.4) - New Jersey - $3.70 pending charges - 17.64/1000 GB bandwidth
server2 (198.51.100.9) - Toronto - $1.70 pending charges - 3.24/500 GB bandwidth
如果收到错误,请确保您的API密钥和IP地址正确。
至此,您已经成功学习了如何使用官方API客户端的基础知识,并编写了一个程序来显示有关您帐户中服务器的信息。
从这里,您可以做更多的事情。例如,您可以编写一个程序以在内存不足时置备新服务器。您可以编写一个应用程序,以在带宽或存储空间不足时自动升级服务器。您甚至可以编写一个工具,根据当前IP自动更新DNS记录。
有关govultr库的更多信息,你可以找到govultr库文档godoc。
govultr是一个 开源项目。如果您在govultr中发现任何错误,可以在GitHub上报告它们 。您还可以通过提交拉取请求直接为代码贡献力量 。
在Arch Linux上使用Makepkg可以避免系统污染,确保仅安装必要的依赖关系。
快速学习如何在Ubuntu 16.04上安装OpenSIPS控制面板,为VoIP提供商提供支持的功能。
学习如何在Fedora 28上安装Akaunting,一款适合小型企业和自由职业者的开源会计软件。
使用其他系统?Mailtrain是一个基于Node.js和MySQL / MariaDB构建的开源自托管新闻通讯应用程序。
了解導致Minecraft延遲的原因和解決方案,包括優化伺服器性能和減少滯後的步驟。
勒索軟件攻擊呈上升趨勢,但人工智能能否幫助應對最新的計算機病毒?AI 是答案嗎?在這裡閱讀知道是 AI 布恩還是禍根
ReactOS,一個開源和免費的操作系統,這裡有最新版本。它能否滿足現代 Windows 用戶的需求並打倒微軟?讓我們更多地了解這種老式但更新的操作系統體驗。
Whatsapp 終於為 Mac 和 Windows 用戶推出了桌面應用程序。現在您可以輕鬆地從 Windows 或 Mac 訪問 Whatsapp。適用於 Windows 8+ 和 Mac OS 10.9+
閱讀本文以了解人工智能如何在小型公司中變得流行,以及它如何增加使它們成長並為競爭對手提供優勢的可能性。
最近,Apple 發布了 macOS Catalina 10.15.4 補充更新以修復問題,但似乎該更新引起了更多問題,導致 mac 機器變磚。閱讀這篇文章以了解更多信息