下载 REST API
本文档描述了在 https://downloads.mariadb.org/rest-api/ 下公开的 API。此 API 旨在方便以下操作
- 获取可供下载的产品列表。(MariaDB 服务器、各种连接器、其他杂项文件)
- 获取每个产品的主要版本列表。
- 获取每个产品主要版本的点版本列表。
- 获取每个点版本可用的文件列表。
- 获取指定版本可用的文件列表。
- 获取最新版本可用的文件列表。
- 使用唯一 ID 或文件名下载文件。
- 使用唯一 ID 或文件名获取文件的校验和。
- 使用唯一 ID 或文件名获取文件的签名。
- 获取可从中下载文件的可用镜像列表。
- 获取可用于过滤文件的可用操作系统列表。
- 获取可用于过滤文件的可用架构列表。
所有产品
URL 端点: https://downloads.mariadb.org/rest-api/products/
示例 URL: https://downloads.mariadb.org/rest-api/products/
HTTP 请求类型: GET
URL GET 参数: N/A
响应类型: application/json
响应格式:
{
products_list: [
{
"product_id": <str:product-id>
"name": <str:product-name>
"description": <str:product-description>
"license": <str:product-license>
},
...
]
}
主要和次要版本列表
URL 端点: https://downloads.mariadb.org/rest-api/<str:product-id>/
示例 URL: https://downloads.mariadb.org/rest-api/mariadb/
HTTP 请求类型: GET
URL GET 参数: N/A
响应类型: application/json
响应格式:
{
"major_releases": [
{
"release_id": <str:release-id>,
"release_name": <str:release-id>,
"release_status": <str:release-status>,
"release_support_type": <str:release-support-type>,
"release_eol_date": <str:release-eol-date>, # YYYY-MM-DD
},
...
]
}
点版本和文件列表
默认情况下,如果不指定 mirror GET 参数,文件下载 URL 会使用离用户最近的镜像。
URL 端点: https://downloads.mariadb.org/rest-api/<str:product-id>/<str:release_id>
示例 URL: https://downloads.mariadb.org/rest-api/mariadb/10.5/
HTTP 请求类型: GET
URL GET 参数: mirror=<str:mirror-id>(可选,选择特定的镜像进行下载)
响应类型: application/json
响应格式:
{
"releases": {
"<str:point-release-id>": {
"release_id": "<str:point-release-id>",
"release_name": "<str:point-release-name>",
"date_of_release": <str:point-release-date>, // Format: YYYY-MM-DD,
"release_notes_url": <str:release-notes-url>,
"change_log": <str:change-log-url,
"files": [
{
"file_id": <str:file-id>,
"file_name": <str:file-name>,
"package_type": <str:package-type>,
"os": <str:os>,
"cpu": <str:cpu>, // may be null
"checksum": {
"md5sum": <str:md5sum>, // may be null
"sha1sum": <str:sha1sum>, // may be null
"sha256sum": <str:sha256sum>, // may be null
"sha512sum": <str:sha512sum> // may be null
},
"signature": <str:gpg-signature>,
"checksum_url": <str:checksum_endpoint_url>,
"signature_url": <str:signature_endpoint_url>,
"file_download_url": <str:file_download_endpoint_url>,
},
...
]
}
...
}
某个版本的文件列表
默认情况下,如果不指定 mirror GET 参数,文件下载 URL 会使用离用户最近的镜像。
URL 端点: https://downloads.mariadb.org/rest-api/<str:product-id>/<str:point-release_id>
示例 URL: https://downloads.mariadb.org/rest-api/mariadb/10.5.4/
HTTP 请求类型: GET
URL GET 参数:
mirror=<str:mirror-id> (可选,选择特定的镜像进行下载)os=<str:os-id> (可选,按操作系统过滤文件)mirror=<str:mirror-id> (可选,选择特定的镜像进行下载)cpu=<str:cpu-id> (可选,按架构过滤文件)
响应类型: application/json
响应格式:
{
"releases": {
"<str:point-release-id>": {
"release_id": "<str:point-release-id>",
"release_name": "<str:point-release-name>",
"date_of_release": <str:point-release-date>, // Format: YYYY-MM-DD,
"release_notes_url": <str:release-notes-url>,
"change_log": <str:change-log-url,
"files": [
{
"file_id": <str:file-id>,
"file_name": <str:file-name>,
"package_type": <str:package-type>,
"os": <str:os>,
"cpu": <str:cpu>, // may be null
"checksum": {
"md5sum": <str:md5sum>, // may be null
"sha1sum": <str:sha1sum>, // may be null
"sha256sum": <str:sha256sum>, // may be null
"sha512sum": <str:sha512sum> // may be null
},
"signature": <str:gpg-signature>,
"checksum_url": <str:checksum_endpoint_url>,
"signature_url": <str:signature_endpoint_url>,
"file_download_url": <str:file_download_endpoint_url>,
},
...
]
}
}
最新版本的文件列表
默认情况下,如果不指定 mirror GET 参数,文件下载 URL 会使用离用户最近的镜像。
URL 端点: https://downloads.mariadb.org/rest-api/<str:product-id>/<str:release_id>
示例 URL: https://downloads.mariadb.org/rest-api/mariadb/10.5/latest/
HTTP 请求类型: GET
URL GET 参数: mirror=<str:mirror-id> (可选,选择特定的镜像进行下载)
响应类型: application/json
响应格式:
{
"releases": {
"<str:point-release-id>": {
"release_id": "<str:point-release-id>",
"release_name": "<str:point-release-name>",
"date_of_release": <str:point-release-date>, // Format: YYYY-MM-DD,
"release_notes_url": <str:release-notes-url>,
"change_log": <str:change-log-url,
"files": [
{
"file_id": <str:file-id>,
"file_name": <str:file-name>,
"package_type": <str:package-type>,
"os": <str:os>,
"cpu": <str:cpu>, // may be null
"checksum": {
"md5sum": <str:md5sum>, // may be null
"sha1sum": <str:sha1sum>, // may be null
"sha256sum": <str:sha256sum>, // may be null
"sha512sum": <str:sha512sum> // may be null
},
"signature": <str:gpg-signature>,
"checksum_url": <str:checksum-endpoint-url>,
"signature_url": <str:signature-endpoint-url>,
"file_download_url": <str:file-download-endpoint-url>,
},
...
]
}
}
下载文件
按 ID 下载
按 ID 下载特定文件有两种可用选项:短 URL 和长 URL,结果相同。默认情况下,文件下载将使用根据请求 IP 地址判断的地理位置最近的镜像。如果遇到损坏的镜像,可以根据通过列出所有镜像的 REST API 获取的 mirror-id 强制使用特定的镜像。
长 URL
URL 端点: https://downloads.mariadb.org/rest-api/<str:product-id>/<str:point-release_id>/<int:file-id>
示例 URL: https://downloads.mariadb.org/rest-api/mariadb/10.5.4/10809
HTTP 请求类型: GET
URL GET 参数: mirror=<str:mirror-id> (可选,选择特定的镜像进行下载)
短 URL
URL 端点: https://downloads.mariadb.org/rest-api/<int:file-id>
示例 URL: https://downloads.mariadb.org/rest-api/10809
HTTP 请求类型: GET
URL GET 参数: mirror=<str:mirror-id> (可选,选择特定的镜像进行下载)
按文件名下载
除了使用文件 ID 外,还可以使用文件名。此功能旨在提高 HTTP 请求的可读性。通过读取 URL 即可清楚知道下载的是哪个文件,而不是一串数字。可选的 GET 参数功能与按 ID 下载的情况相同。
URL 端点: https://downloads.mariadb.org/rest-api/<str:product-id>/<str:point-release_id>/<str:file-name>
示例 URL: https://downloads.mariadb.org/rest-api/mariadb/10.5.4/mariadb-10.5.4-linux-systemd-x86_64.tar.gz
HTTP 请求类型: GET
URL GET 参数: mirror=<str:mirror-id> (可选,选择特定的镜像进行下载)
文件校验和列表
按 ID
长 URL
URL 端点: https://downloads.mariadb.org/rest-api/<str:product-id>/<str:point-release_id>/<int:file-id>/checksum
示例 URL: https://downloads.mariadb.org/rest-api/mariadb/10.5.4/10809/checksum
HTTP 请求类型: GET
URL GET 参数: N/A
短 URL
URL 端点: https://downloads.mariadb.org/rest-api/<int:file-id>/checksum
示例 URL: https://downloads.mariadb.org/rest-api/10809/checksum
HTTP 请求类型: GET
URL GET 参数: N/A
按文件名
URL 端点: https://downloads.mariadb.org/rest-api/<str:product-id>/<str:point-release_id>/<str:file-name>/checksum
示例 URL: https://downloads.mariadb.org/rest-api/mariadb/10.5.4/mariadb-10.5.4-linux-systemd-x86_64.tar.gz/checksumHTTP 请求类型: GET
URL GET 参数: N/A
响应格式:
{
"response": {
"checksum": {
"md5sum": <str:md5sum>, // may be null
"sha1sum": <str:sha1sum>, // may be null
"sha256sum": <str:sha256sum>, // may be null
"sha512sum": <str:sha512sum> // may be null
}
}
}
文件签名列表
按 ID
长 URL
URL 端点: https://downloads.mariadb.org/rest-api/<str:product-id>/<str:point-release_id>/<int:file-id>/signature
示例 URL: https://downloads.mariadb.org/rest-api/mariadb/10.5.4/10809/signature
HTTP 请求类型: GET
URL GET 参数: N/A
短 URL
URL 端点: https://downloads.mariadb.org/rest-api/<int:file-id>/signature
示例 URL: https://downloads.mariadb.org/rest-api/10809/signature
HTTP 请求类型: GET
URL GET 参数: N/A
按文件名
URL 端点: https://downloads.mariadb.org/rest-api/<str:product-id>/<str:point-release_id>/<str:file-name>/signature
示例 URL: https://downloads.mariadb.org/rest-api/mariadb/10.5.4/mariadb-10.5.4-linux-systemd-x86_64.tar.gz/signature
HTTP 请求类型: GET
URL GET 参数: N/A
响应格式:
-----BEGIN PGP SIGNATURE----- <str:signature-text> -----END PGP SIGNATURE-----
可用镜像列表
全球各地都有下载镜像,以便更快更方便地下载。MariaDB 基金会致力于保持列表最新。列表按国家/地区分组提供。
URL 端点: https://downloads.mariadb.org/rest-api/mirrors
示例 URL: https://downloads.mariadb.org/rest-api/mirrors
HTTP 请求类型: GET
URL GET 参数: N/A
响应格式:
{
"mirror_list":{
<str:country-name>: [
{
"mirror_id": <str:mirror-id>,
"mirror_name": <str:mirror-name>,
},
...
],
<str:country-name>: [
{
"mirror_id": <str:mirror-id>,
"mirror_name": <str:mirror-name>,
},
]
...
}
可用操作系统列表
提供操作系统列表是为了帮助用户使用 os_id 参数过滤文件列表。
URL 端点: https://downloads.mariadb.org/rest-api/os
示例 URL: https://downloads.mariadb.org/rest-api/os
HTTP 请求类型: GET
URL GET 参数: N/A
响应格式:
{
"os_list": [
{
"os_id": <str:os-id>,
"os_name": <str:os-name>
},
]
...
}
可用架构列表
提供架构列表是为了帮助用户使用 architecture_id 参数过滤文件列表。
URL 端点: https://downloads.mariadb.org/rest-api/cpu
示例 URL: https://downloads.mariadb.org/rest-api/cpu
HTTP 请求类型: GET
URL GET 参数: N/A
响应格式:
{
"architecture_list": [
{
"architecture_id": <str:cpu-id>,
"architecture_name": <str:cpu-name>
},
]
...
}