下载 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/checksum
HTTP 请求类型: 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> }, ] ... }