下载 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>
    },
  ]
  ...
}