首批通过分布式安全可靠测评,为关键业务系统打造
上传 RPM 包
更新时间:2026-04-10 11:58:35
本文档介绍如何上传升级需要的 RPM 包。
调用说明
接口约束
obshell Server 会对该 API 进行安全校验,详细介绍可参见 API 混合加密。
请求路径
POST /api/v1/upgrade/package
请求类型
multipart/form-data
请求参数
| 参数 | 类型 | 必选 | 示例值 | 描述 |
|---|---|---|---|---|
| file | file | 是 | 无 | 指定需要上传的 RPM 包 |
返回结果
| 参数 | 类型 | 说明 |
|---|---|---|
| successful | bool | 请求是否成功。 |
| timestamp | time.Time | 服务端完成请求的时间戳。 |
| duration | int | 服务端处理请求的时间(毫秒)。 |
| status | int | 符合 HTTP Status 规范的编码。 |
| traceId | string | 请求的 Trace ID。 |
| data | UpgradePkgInfo | 详情参见下文 UpgradePkgInfo 信息的数据结构。 |
| error | ApiError | 请求产生的 Error,包含如下信息:
|
UpgradePkgInfo 信息的数据结构:
| 参数 | 类型 | 说明 |
|---|---|---|
| pkgId | int | 软件包 ID |
| name | string | 软件包名称 |
| version | string | 软件包版本 |
| releaseDistribution | string | 软件包的发行版构建号 |
| distribution | string | 软件包的发行版 |
| release | string | 软件包的构建号 |
| architecture | string | 软件包架构 |
| Size | int | 软件包解压大小,单位字节 |
| PayloadSize | int | 软件包大小,单位字节 |
| ChunkCount | int | 软件包切片数量 |
| Md5 | string | 软件包的 MD5 |
| UpgradeDepYaml | string | 软件包的升级路径文件 |
| GmtModify | time.Time | 软件包的修改时间 |
示例
请求示例
-F "file=@/home/rpmbuild/RPMS/x86_64/oceanbase-ce-4.2.1.1-101000062023110109.el7.x86_64.rpm"
/api/v1/upgrade/package
返回示例
{
"successful": true,
"timestamp": "2024-01-09T16:55:58.153159003+08:00",
"duration": 68288,
"status": 200,
"traceId": "42464438789e774e",
"data": {
"PkgId": 1,
"Name": "oceanbase-ce",
"Version": "4.2.1.1",
"ReleaseDistribution": "101000062023110109.el7",
"Distribution": "el7",
"Release": "101000062023110109",
"Architecture": "x86_64",
"Size": 433648329,
"PayloadSize": 96547244,
"ChunkCount": 6,
"Md5": "550d75397013d00ca0a8e529d17020c3",
"UpgradeDepYaml": "# 描述oceanbase各个版本升级依赖关系\n# 参考文档 release/ptw5y7\n\n# 对于每一个正式发布的ob版本,在下面的yaml文档中添加一项,包括如下属性:\n# * version: 待升级的版本,或者升级过程中经过的版本;一般用A.B.C的版本号,如果是A.B.C-D的形式,表示build号必须大于等于D\n# * can_be_upgraded_to: 表示该版本经过OB QA兼容性测试,可以*直接*升级到的ob版本号,是一个列表可以包括多个版本\n# * deprecated: 缺省为False。如果为True,表示这个版本已经废除。可以作\n# 为升级的起点,可以作为升级过度版本,但是不能作为升级目标版本。\n# * require_from_binary: 缺省为False。如果为True,表示升级过程中如果作为中间版本,除了运行upgrade脚本,还需要把observer也升级到该版本\n#\n\n# OCP的OB升级模块会读取本文件,给定升级的起始版本和目标版本,自动在满\n# 足上述约束的情况下寻找一个升级的最短路径。基本算法是:\n# 基于如下描述构建一个图,每个版本一个结点,can_be_upgraded_to关系定义\n# 一条边,寻找起始版本和升级目标两个版本之间的最短路径。除了起始点,其\n# 他节点不能是deprecated。如果有A.B.C和A.B.C-D两种节点匹配,优先选择后\n# 者。\n#\n\n- version: 4.0.0.0\n can_be_upgraded_to:\n - 4.1.0.0\n\n# 4.1.0.x is barrier\n- version: 4.1.0.0-100000192023032010 # 4.1 BETA版本 不能作为目标版本\n can_be_upgraded_to:\n - 4.1.0.0\n deprecated: True\n\n- version: 4.1.0.0\n can_be_upgraded_to:\n - 4.1.0.1\n\n- version: 4.1.0.1\n can_be_upgraded_to:\n - 4.1.0.2\n\n- version: 4.1.0.2\n can_be_upgraded_to:\n - 4.2.0.0\n require_from_binary:\n value: True\n when_come_from: [4.0.0.0, 4.1.0.0-100000192023032010]\n\n- version: 4.2.0.0-100000152023080109 # 4.2 RC2版本 不能作为目标版本\n can_be_upgraded_to:\n - 4.2.0.0\n deprecated: True\n\n- version: 4.2.0.0-100010022023081817 # 4.2 RC2 hotfix版本 不能作为目标版本\n can_be_upgraded_to:\n - 4.2.0.0\n deprecated: True\n\n- version: 4.2.0.0\n can_be_upgraded_to:\n - 4.2.1.0\n\n# 4.2.1.x is barrier\n- version: 4.2.1.0\n can_be_upgraded_to:\n - 4.2.1.1\n\n- version: 4.2.1.1\n can_be_upgraded_to:\n - 4.3.0.0\n require_from_binary:\n value: True\n when_come_from: [4.1.0.0, 4.1.0.1, 4.1.0.2, 4.2.0.0]\n",
"GmtModify": "0001-01-01T00:00:00Z"
}
}
相关文档
除通过命令行调用 API 接口外,还可以通过 SDK 方法调用 API。