如何使用 python 请求客户端获取 Nomad 预编译二进制文件?
How to get Nomad precompiled binary using python requests client?
我正在尝试从官方 Github hashicorp 存储库获取最新版本的 Nomad。
(为了问题的缘故,为版本资产写了明确的 url)
import requests
response = requests.get("https://api.github.com/repos/hashicorp/nomad/releases/latest")
release_url = response.json()["url"]
print(release_url)
asset_response = requests.get("https://api.github.com/repos/hashicorp/nomad/releases/assets/57485344", headers={"Accept": "application/octet-stream; application/vnd.github.v3+json"})
print(asset_response.json())
当 运行 代码时,我收到错误 Not Found:
{'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest/reference/repos#get-a-release-asset'}
我也试过将 Accept header 设置为“application/octet-stream”,正如文档中所述,但我遇到了完全相同的错误。
此外,尝试使用具有相同 url 的浏览器,但我遇到了同样的错误,所以我猜测问题不太可能与 python 请求有关。
我是不是做错了什么?或者是否有另一种方法可以使用 GitHub API?
获取最新版本的最新预编译二进制文件
Hashicorp 不会在 github 上发布预编译的二进制文件。它在自己的 cdn https://releases.hashicorp.com/nomad/
上发布它们
要从 python 动态下载最新的稳定版本,您可以结合使用 github(获取最新版本)和 Hashicorp cdn(下载二进制文件)。
import requests
from urllib.request import urlretrieve
from os.path import basename
response = requests.get("https://api.github.com/repos/hashicorp/nomad/releases/latest")
latest_stable_version = response.json()["name"][1:]
print(latest_stable_version)
release_url = "https://releases.hashicorp.com/nomad/{0}/nomad_{0}_linux_amd64.zip".format(latest_stable_version)
file_name = basename(release_url)
print("Downloading", file_name)
urlretrieve(release_url, file_name)
在上面的示例中,我正在下载 linux
OS 和 amd64
CPU 类型的二进制文件。
您可以找到所有预编译的 OS 和 CPU 类型 here
我正在尝试从官方 Github hashicorp 存储库获取最新版本的 Nomad。 (为了问题的缘故,为版本资产写了明确的 url)
import requests
response = requests.get("https://api.github.com/repos/hashicorp/nomad/releases/latest")
release_url = response.json()["url"]
print(release_url)
asset_response = requests.get("https://api.github.com/repos/hashicorp/nomad/releases/assets/57485344", headers={"Accept": "application/octet-stream; application/vnd.github.v3+json"})
print(asset_response.json())
当 运行 代码时,我收到错误 Not Found:
{'message': 'Not Found', 'documentation_url': 'https://docs.github.com/rest/reference/repos#get-a-release-asset'}
我也试过将 Accept header 设置为“application/octet-stream”,正如文档中所述,但我遇到了完全相同的错误。
此外,尝试使用具有相同 url 的浏览器,但我遇到了同样的错误,所以我猜测问题不太可能与 python 请求有关。
我是不是做错了什么?或者是否有另一种方法可以使用 GitHub API?
获取最新版本的最新预编译二进制文件Hashicorp 不会在 github 上发布预编译的二进制文件。它在自己的 cdn https://releases.hashicorp.com/nomad/
上发布它们要从 python 动态下载最新的稳定版本,您可以结合使用 github(获取最新版本)和 Hashicorp cdn(下载二进制文件)。
import requests
from urllib.request import urlretrieve
from os.path import basename
response = requests.get("https://api.github.com/repos/hashicorp/nomad/releases/latest")
latest_stable_version = response.json()["name"][1:]
print(latest_stable_version)
release_url = "https://releases.hashicorp.com/nomad/{0}/nomad_{0}_linux_amd64.zip".format(latest_stable_version)
file_name = basename(release_url)
print("Downloading", file_name)
urlretrieve(release_url, file_name)
在上面的示例中,我正在下载 linux
OS 和 amd64
CPU 类型的二进制文件。
您可以找到所有预编译的 OS 和 CPU 类型 here