Skip to main content

OpenCecs API 接口文档

文档版本: v3 | 更新日期: 2026-03-19


📌 接口说明(重要)

Base URL:https://www.opencecs.com/api/v1

认证方式:大多数接口需要JWT Token(登录后获得)。再请求头中添加:Authorization: Bearer {token}

统一响应格式: 所有接口返回JSON对象,包含以下字段:

{
"code": 0, // 0 表示成功,非0表示失败
"message": "成功", // 提示信息
"data": { ... } // 具体数据,可能为 null
}

以下文档中,成功返回仅展示data字段,失败返回展示message字段。

{
"code": 500,
"message": "错误信息",
"data": null
}

📚 接口目录

  1. AUTH 认证
  2. USER 用户
  3. CECS 实例
  4. CECSDISK 磁盘管理
  5. ORDER 订单
  6. FINANCE 财务
  7. PORTMAPPING 端口映射
  8. SHAREDSTORAGE 共享存储
  9. TASKLOG 定时任务
  10. STORAGE 对象存储
  11. STORAGEADMIN 存储管理
  12. METRICS 流量上报

一、AUTH 认证

1.1 发送短信验证码

功能说明:发送短信验证码,用于登录。

请求方式:POST

请求URL

{base_url}/auth/sms/send

请求参数

参数名必选类型说明
phonestring手机号,11位数字
scenestring场景:register(注册)/ login(登录)/ reset(重置密码)

请求示例

curl -X POST "https://www.opencecs.com/api/v1/auth/sms/send" \
-H "Content-Type: application/json" \
-d '{"phone": "13800138000", "scene": "login"}'

返回示例

{
"code": 0,
"message": "Success",
"data": {
"expire_time": 300
}
}

返回字段说明

字段类型说明
expire_timeint验证码有效期(秒),通常300秒

1.2 发送邮箱验证码

功能说明:发送邮箱验证码

请求方式:POST

请求 URL

{base_url}/auth/email/send

请求参数

参数名必选类型说明
emailstring邮箱地址
scenestring场景:login(登录)/ reset(重置密码)

请求示例

curl -X POST "https://www.opencecs.com/api/v1/auth/email/send" \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com", "scene": "login"}'

返回示例

{
"code":0,
"message":"Success",
"data":
{
"expire_time": 300
}
}

1.3 用户注册

功能说明:用户注册

请求方式:POST

请求 URL

{base_url}/auth/register

请求参数

参数名必选类型说明
phonestring手机号,11位
codestring6位短信验证码
agreementsstring同意的协议列表,必须同时包含全部3项:terms(用户协议)、privacy(隐私政策)、service(产品服务协议)

请求示例

curl -X POST "https://www.opencecs.com/api/v1/auth/register" \
-H "Content-Type: application/json" \
-d '{
"phone": "13800138000",
"code": "123456",
"agreements": ["terms", "privacy", "service"]}'

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"user_id": "usr_abc123",
"username": "user_123",
"phone": "13800138000",
"token": "eyJhbGciOiJIUzI1NiIs...",
"expire_time": 1712345678
}
}

返回字段说明

字段类型说明
user_idstring用户唯一标识
usernamestring系统生成的用户名
phonestring手机号
tokenstringJWT Token,后续请求放入 Authorization 头
expire_timeint64Token过期时间(Unix时间戳)

1.4 手机号验证码登录

功能说明:手机号验证码登录

请求方式:POST

请求 URL

{base_url}/auth/login/phone

请求参数

参数名必选类型说明
phonestring手机号,11位
codestring6位短信验证码
remember_mebooltrue=长期Token(30天),false=短期Token(2小时)

请求示例

curl -X POST "https://www.opencecs.com/api/v1/auth/login/phone" \
-H "Content-Type: application/json" \
-d '{"phone": "13800138000", "code": "123456", "remember_me": false}'

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"user_id": "usr_abc123",
"username": "user_123",
"phone": "13800138000",
"email": "",
"user_type": "beginner",
"is_verified": false,
"token": "eyJhbGciOiJIUzI1NiIs...",
"expire_time": 1712345678
}
}

返回字段说明

字段类型说明
user_idstring用户ID
usernamestring系统生成的用户名
phonestring手机号
emailstring邮箱
user_typestring用户类型:beginner / professional
is_verifiedbool是否已实名认证
tokenstringJWT Token
expire_timeint64Token过期时间(Unix时间戳)

1.5 邮箱密码登录

功能说明:邮箱密码登录

请求方式:POST

请求 URL

{base_url}/auth/login/email

请求参数

参数名必选类型说明
emailstring邮箱地址
passwordstring密码,6-20位
remember_mebool是否长期登录

请求示例

curl -X POST "https://www.opencecs.com/api/v1/auth/login/email" \
-H "Content-Type: application/json" \
-d '{"email": "user@example.com", "password": "yourpassword", "remember_me": false}'

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"user_id": "usr_abc123",
"token": "eyJhbGciOiJIUzI1NiIs...",
"expire_time": 1712345678
}
}

返回字段说明

字段类型说明
user_idstring用户ID
tokenstringJWT Token
expire_timeint64过期时间(Unix时间戳)

1.6 账号密码登录

功能说明:账号密码登录(账号可以是用户名/手机号/邮箱)

请求方式:POST

请求 URL

{base_url}/auth/login/account

请求参数

参数名类型必填说明
accountstring必填账号(用户名/手机号/邮箱均可)
passwordstring必填密码,6-20位
remember_mebool可选是否长期登录

请求示例

curl -X POST "https://www.opencecs.com/api/v1/auth/login/account" \
-H "Content-Type: application/json" \
-d '{"account": "admin", "password": "yourpassword", "remember_me": false}'

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"user_id": "user_abc123",
"token": "eyJhbGciOiJIUzI1NiIs...",
"expire_time": 1712345678
}
}

返回字段说明

字段类型说明
user_idstring用户ID
tokenstringJWT Token
expire_timeint64过期时间(Unix时间戳)

1.7 验证身份(重置密码第一步)

功能说明: 验证身份(重置密码第一步)

请求方式:POST

请求 URL

{base_url}/auth/reset/verify

请求参数

参数名类型必填说明
verify_typestring必填验证类型:phone / email / account
phonestring可选手机号(verify_type=phone时填写)
phone_codestring可选手机验证码
emailstring可选邮箱(verify_type=email时填写)
email_codestring可选邮箱验证码

请求示例

curl -X POST "https://www.opencecs.com/api/v1/auth/reset/verify" \
-H "Content-Type: application/json" \
-d '{"verify_type": "phone", "phone": "13800138000", "phone_code": "123456"}'

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"reset_token": "eyJhbGciOiJIUzI1NiIs...",
"expire_time": 1712345678
}
}

返回字段说明

字段类型说明
reset_tokenstring重置密码临时Token,第二步使用
expire_timeint64Token过期时间(10分钟有效)

1.8 重置密码(第二步)

功能说明:重置密码(第二步)

请求方式:POST

请求 URL

{base_url}/auth/reset/password

请求参数

参数名类型必填说明
reset_tokenstring必填第一步返回的reset_token
new_passwordstring必填新密码,6-20位
confirm_passwordstring必填确认密码,需与new_password一致

请求示例

curl -X POST "https://www.opencecs.com/api/v1/auth/reset/password" \
-H "Content-Type: application/json" \
-d '{"reset_token": "eyJhbGciOiJIUzI1NiIs...", "new_password": "newpass123", "confirm_password": "newpass123"}'

返回示例

成功:

{
"code": 0,
"message": "重置成功",
"data": null
}

二、USER 用户

2.1 获取当前用户信息

功能说明:获取当前用户信息

请求方式:GET

请求 URL

{base_url}/user/info

请求参数:无

请求示例

GET "https://www.opencecs.com/api/v1/user/info"

curl -X GET "https://www.opencecs.com/api/v1/user/info" \
-H "Authorization: Bearer eyJ...”
#需将 eyJ... 替换为实际的 JWT Token

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"user_id": "usr_abc123",
"username": "user_123",
"phone": "138****8000",
"email": "user@example.com",
"avatar": "https://...",
"user_type": "beginner",
"is_verified": false,
"created_at": "2026-03-01 12:00:00"
}
}

返回字段说明

字段类型说明
user_idstring用户唯一标识
usernamestring用户名
phonestring手机号(脱敏)
emailstring邮箱
avatarstring头像URL
user_typestring用户类型:beginner / professional
is_verifiedbool是否已实名认证
created_atstring注册时间

2.2 退出登录

功能说明: 退出登录

请求方式:POST

请求 URL

{base_url}/user/logout

请求参数:无

请求示例

curl -X POST "https://www.opencecs.com/api/v1/user/logout" \
-H "Authorization: Bearer eyJ...”
#需将 eyJ... 替换为实际的 JWT Token

返回示例

成功:

{
"code": 0,
"message": "退出成功",
"data": null
}

2.3 刷新 Token

功能说明:刷新 Token

请求方式:POST

请求 URL

{base_url}/token/refresh

请求参数:无

请求示例

curl -X POST "https://www.opencecs.com/api/v1/user/token/refresh" \
-H "Authorization: Bearer {oldToken}"

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"token": "eyJhbGciOiJIUzI1NiIs...",
"expire_time": 1712345678
}
}

返回字段说明

字段类型说明
tokenstring新的JWT Token
expire_timeint64新Token过期时间(Unix时间戳)

三、CECS 实例

3.1 获取CECS产品列表

功能说明:获取CECS产品列表

请求方式:GET

请求 URL

{base_url}/cecs/products

请求参数

参数名类型必填说明
board_typestring可选核心板类型,如 RK3588,不填返回全部
in_stockint可选0=全部,1=仅有货

请求示例

GET "https://www.opencecs.com/api/v1/cecs/products?in_stock=1"

返回示例

成功:

{
"code": 0,
"message": "重置成功",
"data": {
"list": [
{
"product_id": "prod_rk3588_8g",
"board_type": "RK3588",
"board_name": "Rockchip RK3588",
"cpu_spec": "8核 2.4GHz",
"gpu_spec": "Mali-G610 MP4",
"memory": 8,
"monthly_price": 299.0,
"hourly_price": 0.45,
"stock": 10,
"in_stock": true,
"is_new": true
}
]
}
}

返回字段说明

字段类型说明
list[].product_idstring产品ID
list[].board_typestring核心板类型
list[].board_namestring核心板名称
list[].cpu_specstringCPU规格描述
list[].gpu_specstringGPU规格描述
list[].memoryint内存(GB)
list[].monthly_pricefloat64包月单价(元)
list[].hourly_pricefloat64按时单价(元)
list[].stockint库存数量
list[].in_stockbool是否有货
list[].is_newbool是否新品

3.2 获取CECS产品详情

功能说明: 获取CECS产品详情

请求方式:GET

请求 URL

{base_url}/cecs/products/:product_id

请求参数

参数名类型必填说明
product_idstring必填产品ID

请求示例

GET "https://www.opencecs.com/api/v1/cecs/products/prod_rk3588_8g"

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"product": {
"product_id": "prod_rk3588_8g",
"board_name": "Rockchip RK3588",
"cpu_spec": "8核 2.4GHz",
"gpu_spec": "Mali-G610 MP4",
"codec_spec": "H.264/H.265",
"memory": 8,
"monthly_price": 299.0,
"stock": 10
}
}
}

返回字段说明

字段类型说明
reset_tokenstring重置密码临时Token,第二步使用
expire_timeint64Token过期时间(10分钟有效)

3.3 获取可用地域列表

功能说明: 获取可用地域列表

请求方式:GET

请求 URL

{base_url}/cecs/regions

请求参数:无

请求示例

GET "https://www.opencecs.com/api/v1/cecs/regions"

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"list": [
{
"region_id": "cn-wuhan",
"country": "中国",
"country_code": "CN",
"city": "武汉",
"zone_count": 3
}
]
}
}

返回字段说明

字段类型说明
list[].region_idstring地域ID,下单时使用
list[].countrystring国家名称
list[].country_codestringISO国家代码
list[].citystring城市名称
list[].zone_countint可用区数量

3.4 获取系统镜像列表

功能说明: 获取系统镜像列表

请求方式:GET

请求 URL

{base_url}/cecs/systems

请求参数

参数名类型必填说明
image_typestring可选镜像类型:public / private,不填返回全部

请求示例

GET "https://www.opencecs.com/api/v1/cecs/systems?image_type=public"

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"list": [
{
"image_id": "img_ubuntu22",
"image_type": "public",
"image_name": "Ubuntu 22.04 LTS",
"os_version": "Ubuntu 22.04",
"arch": "arm64",
"description": "官方 Ubuntu 22.04 镜像"
}
]
}
}

返回字段说明

字段类型说明
list[].image_idstring镜像ID,创建实例时使用
list[].image_typestring镜像类型:public / private
list[].image_namestring镜像名称
list[].os_versionstring操作系统版本,如 Ubuntu 22.04
list[].archstringCPU架构,如 arm64
list[].descriptionstring镜像描述

3.5 获取CECS实例列表

功能说明: 获取CECS实例列表

请求方式:GET

请求 URL

{base_url}/cecs/instances

请求参数

参数名类型必填说明
statusstring可选状态过滤:running / stopped / expired / pending
region_idstring可选地域ID过滤
pageint可选页码,默认1
page_sizeint可选每页数量,默认10

请求示例

GET "https://www.opencecs.com/api/v1/cecs/instances?status=running&page=1"

curl -X GET "https://www.opencecs.com/api/v1/cecs/instances?status=running&page=1" \
-H "Authorization: Bearer eyJ...”
#需将 eyJ... 替换为实际的 JWT Token

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"total": 5,
"list": [
{
"instance_id": "ins-abc123",
"instance_name": "my-instance",
"board_type": "RK3588",
"ip_address": "192.168.1.100",
"status": "running",
"billing_mode": "monthly",
"expire_at": "2026-04-01 12:00:00",
"created_at": "2026-03-01 12:00:00"
}
],
"stats": {
"running": 2,
"stopped": 1,
"expired": 2
}
}
}

返回字段说明

字段类型说明
totalint实例总数
list[].instance_idstring实例ID
list[].instance_namestring实例名称
list[].board_typestring核心板类型
list[].ip_addressstring内网IP地址
list[].statusstring状态:running / stopped / expired
list[].billing_modestring计费模式:monthly / hourly
list[].expire_atstring到期时间
list[].created_atstring创建时间
stats.runningint运行中数量
stats.stoppedint已停止数量
stats.expiredint已过期数量

3.6 获取CECS实例详情

功能说明: 获取CECS实例详情

请求方式:GET

请求 URL

{base_url}/cecs/instances/{instance_id}

请求参数

参数名类型必填说明
instance_idstring实例ID

请求示例

curl -X GET "https://www.opencecs.com/api/v1/cecs/instances/ins-abc123" \
-H "Authorization: Bearer eyJ...”
#需将 eyJ... 替换为实际的 JWT Token"

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"instance": {
"instance_id": "ins-abc123",
"instance_name": "my-instance",
"ip_address": "192.168.1.100",
"mac_address": "52:54:00:ab:cd:ef",
"status": "running",
"order_id": "ORD-20260301-001",
"region_name": "武汉",
"monthly_price": "299.00",
"expire_at": "2026-04-01 12:00:00",
"created_at": "2026-03-01 12:00:00",
"updated_at": "2026-03-01 12:00:00"
}
}
}

返回字段说明

字段类型说明
instance.instance_idstring实例ID
instance.instance_namestring实例名称
instance.ip_addressstring内网IP地址
instance.mac_addressstringMAC
instance.statusstring实例状态
instance.order_idstring关联订单号
instance.region_namestring地域名称
instance.statusstring实例状态
instance.order_idstring关联订单号
instance.region_namestring地域名称
instance.monthly_pricestring月费(元)
instance.expire_atstring到期时间
instance.created_atstring创建时间
instance.updated_atstring最后更新时间

3.7 启动CECS实例

功能说明: 启动CECS实例

请求方式:POST

请求 URL

{base_url}/cecs/instances/:instance_id/start

请求参数

参数名类型必填说明
instance_idstring必填实例ID

请求示例

curl -X POST "https://www.opencecs.com/api/v1/cecs/instances/ins-abc123/start" \
-H "Authorization: Bearer eyJ...”
#需将 eyJ... 替换为实际的 JWT Token

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"instance_id": "ins-abc123",
"status": "running",
"message": "启动成功"
}
}

返回字段说明

字段类型说明
instance_idstring实例ID
statusstring操作后状态
messagestring操作结果说明

3.8 停止CECS实例

功能说明: 停止CECS实例

请求方式:POST

请求 URL

{base_url}/cecs/instances/:instance_id/stop

请求参数

参数名类型必填说明
instance_idstring必填实例ID

请求示例

curl -X POST "https://www.opencecs.com/api/v1/cecs/instances/ins-abc123/stop" \
-H "Authorization: Bearer eyJ...”
#需将 eyJ... 替换为实际的 JWT Token

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"instance_id": "ins-abc123",
"status": "stopped",
"message": "停止成功"
}
}

返回字段说明

字段类型说明
instance_idstring实例ID
statusstring操作后状态
messagestring操作结果说明

3.9 重启CECS实例

功能说明: 重启CECS实例

请求方式:POST

请求 URL

{base_url}/cecs/instances/:instance_id/reboot

请求参数

参数名类型必填说明
instance_idstring必填实例ID

请求示例

curl -X POST "https://www.opencecs.com/api/v1/cecs/instances/ins-abc123/reboot" \
-H "Authorization: Bearer eyJ...”
#需将 eyJ... 替换为实际的 JWT Token

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"instance_id": "ins-abc123",
"status": "running",
"message": "重启成功"
}
}

返回字段说明

字段类型说明
instance_idstring实例ID
statusstring操作后状态
messagestring操作结果说明

3.10 获取实例控制台URL

功能说明: 获取实例控制台URL

请求方式:GET

请求 URL

{base_url}/cecs/instances/:instance_id/console

请求参数

参数名类型必填说明
instance_idstring必填实例ID

请求示例

curl -X GET "https://www.opencecs.com/api/v1/cecs/instances/ins-abc123/console" \
-H "Authorization: Bearer eyJ...”
#需将 eyJ... 替换为实际的 JWT Token

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"console_url": "https://console.opencecs.com/vnc?token=abc123",
"expire_at": "2026-03-12 12:30:00"
}
}

返回字段说明

字段类型说明
console_urlstringVNC控制台URL(含临时Token)
expire_atstringURL过期时间(通常15分钟)

3.11 删除CECS实例

功能说明: 删除CECS实例

请求方式:DELETE

请求 URL

{base_url}/cecs/instances/:instance_id/delete

请求参数

参数名类型必填说明
instance_idstring必填实例ID,需已过期状态

请求示例

curl -X DELETE "https://www.opencecs.com/api/v1/cecs/instances/ins-abc123/delete" \
-H "Authorization: Bearer eyJ...”
#需将 eyJ... 替换为实际的 JWT Token

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"instance_id": "ins-abc123",
"message": "删除成功"
}
}

返回字段说明

字段类型说明
instance_idstring被删除的实例ID
messagestring删除结果说明

3.12 续费CECS实例

功能说明: 续费CECS实例

请求方式:POST

请求 URL

{base_url}/cecs/instances/:instance_id/renew

请求参数

参数名类型必填说明
instance_idstring必填实例ID
durationint必填续费时长(月),最小1

请求示例

curl -X POST "https://www.opencecs.com/api/v1/cecs/instances/ins-abc123/renew" \
-H "Authorization: Bearer eyJ...” \
#需将 eyJ... 替换为实际的 JWT Token
-H "Content-Type: application/json" \
-d '{"duration": 3}'

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"order_id": "ORD-20260312-001",
"total_price": "897.00",
"new_expire_at": "2026-06-12 12:00:00"
}
}

返回字段说明

字段类型说明
order_idstring续费订单号
total_pricestring续费金额(元)
new_expire_atstring续费后新到期时间

3.13 获取可用节点列表

功能说明: 获取可用节点列表

请求方式:GET

请求 URL

{base_url}/cecs/zones

请求参数

参数名类型必填说明
region_idstring必填地域ID,如 cn-wuhan

请求示例

curl -X GET "https://www.opencecs.com/api/v1/cecs/zones?region_id=cn-wuhan" \
-H "Authorization: Bearer eyJ...”
#需将 eyJ... 替换为实际的 JWT Token

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"list": [
{
"zone_id": "ZONE-CN-WH-1",
"zone_name": "武汉1",
"status": 1
}
]
}
}

返回字段说明

字段类型说明
list[].zone_idstring节点ID,如 ZONE-CN-WH-1
list[].zone_namestring节点名称,如 武汉1
list[].statusint状态:1=可用,0=不可用

3.14 切换系统镜像

功能说明: 切换系统镜像(会清空所有挂载磁盘数据)

请求方式:POST

请求 URL

{base_url}/cecs/instances/:instance_id/switch-os

请求参数

参数名类型必填说明
instance_idstring必填实例ID
new_image_idstring必填目标镜像ID

请求示例

curl -X POST "https://www.opencecs.com/api/v1/cecs/instances/ins-abc123/switch-os" \
-H "Authorization: Bearer eyJ...” \
#需将 eyJ... 替换为实际的 JWT Token
-H "Content-Type: application/json" \
-d '{"new_image_id": "img_ubuntu22"}'

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"instance_id": "ins-abc123",
"new_image_id": "img_ubuntu22",
"disk_results": [
{
"disk_id": "disk-abc123",
"success": true,
"err_msg": ""
}
],
"message": "镜像切换成功"
}
}

返回字段说明

字段类型说明
instance_idstring实例ID
new_image_idstring新镜像ID
disk_results[].disk_idstring磁盘ID
disk_results[].successbool磁盘重建是否成功
disk_results[].err_msgstring失败原因(成功时为空)
messagestring操作信息

四、CECSDISK 磁盘管理

4.1 磁盘列表(含统计)

功能说明: 磁盘列表(含统计)

请求方式:GET

请求 URL

{base_url}/cecs/disks

请求参数

参数名类型必填说明
statusstring可选状态筛选:available / in_use / overdue / expired
region_idstring可选地域筛选
pageint可选页码,默认1
page_sizeint可选每页数量,默认10,最大50

请求示例

curl -X GET "https://www.opencecs.com/api/v1/cecs/disks?status=in_use&page=1" \
-H "Authorization: Bearer eyJ...”
#需将 eyJ... 替换为实际的 JWT Token

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"stats": {
"total": 5,
"attached": 3,
"unattached": 2,
"total_gb": 500
},
"total": 3,
"list": [
{
"disk_id": "disk-abc123",
"disk_name": "my-disk",
"size_gb": 100,
"billing_mode": "monthly",
"status": "in_use",
"instance_id": "ins-xyz456",
"expire_at": "2026-04-01 12:00:00",
"days_remain": 20
}
]
}
}

返回字段说明

字段类型说明
stats.totalint磁盘总数
stats.attachedint已挂载数量
stats.unattachedint未挂载数量
stats.total_gbint总容量(GB)
totalint当前筛选总数
list[].disk_idstring磁盘ID
list[].disk_namestring磁盘名称
list[].size_gbint容量(GB)
list[].billing_modestring计费模式:monthly / hourly
list[].statusstring磁盘状态
list[].instance_idstring已挂载的实例ID(未挂载为空)
list[].expire_atstring到期时间(包月)
list[].days_remainint剩余天数(-1表示按量)

4.2 磁盘详情

功能说明: 磁盘详情

请求方式:GET

请求 URL

{base_url}/cecs/disks/:id

请求参数

参数名类型必填说明
idstring必填磁盘ID

请求示例

curl -X GET "https://www.opencecs.com/api/v1/cecs/disks/disk-abc123" \
-H "Authorization: Bearer eyJ...”
#需将 eyJ... 替换为实际的 JWT Token

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"disk_id": "disk-abc123",
"disk_name": "my-disk",
"size_gb": 100,
"used_gb": 50,
"used_percent": 50,
"billing_mode": "monthly",
"status": "in_use",
"instance_id": "ins-xyz456",
"region_id": "cn-wuhan",
"expire_at": "2026-04-01 12:00:00"
}
}

返回字段说明

字段类型说明
disk_idstring磁盘ID
disk_namestring磁盘名称
size_gbint容量(GB)
used_gbint已用(GB),-1表示不可获取
used_percentint使用率(%),-1表示不可获取
billing_modestring计费模式
statusstring磁盘状态
instance_idstring已挂载实例ID
region_idstring地域ID
expire_atstring到期时间

4.3 购买磁盘价格预估

功能说明: 购买磁盘价格预估

请求方式:POST

请求 URL

{base_url}/cecs/disks/calculate

请求参数

参数名类型必填说明
billing_modestring必填计费模式:monthly / hourly
region_idstring必填地域ID
size_gbint必填容量(GB),50-10240
durationint必填包月时为月数(1/2/3/6/12);按量固定传1
quantityint必填购买数量,1-100

请求示例

curl -X POST "https://www.opencecs.com/api/v1/cecs/disks/calculate" \
-H "Authorization: Bearer eyJ...” \
#需将 eyJ... 替换为实际的 JWT Token
-H "Content-Type: application/json" \
-d '{
"billing_mode": "monthly",
"region_id": "cn-wuhan",
"size_gb": 100,
"duration": 1,
"quantity": 1
}'

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"unit_price": "50.00",
"total_price": "50.00",
"price_detail": "100GB 包月磁盘,单价50元/月",
"billing_mode": "monthly",
"unit": "月"
}
}

返回字段说明

字段类型说明
unit_pricestring单块磁盘单价(元)
total_pricestring订单总价(元)
price_detailstring价格明细说明
billing_modestring计费模式
unitstring计费单位:月/小时

4.4 购买磁盘

功能说明: 购买磁盘

请求方式:POST

请求 URL

{base_url}/cecs/disks/buy

请求参数

参数名类型必填说明
billing_modestring必填计费模式:monthly / hourly
region_idstring必填地域ID
zone_idstring必填节点ID
size_gbint必填容量(GB),50-10240
durationint必填包月时为月数;按量固定传1
quantityint必填购买数量,1-100
idempotent_tokenstring可选客户端生成UUID,防重复提交

请求示例

curl -X POST "https://www.opencecs.com/api/v1/cecs/disks/buy" \
-H "Authorization: Bearer eyJ...” \
#需将 eyJ... 替换为实际的 JWT Token
-H "Content-Type: application/json" \
-d '{
"billing_mode": "monthly",
"region_id": "cn-wuhan",
"zone_id": "ZONE-CN-WH-1",
"size_gb": 100,
"duration": 1,
"quantity": 1
}'

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"order_id": "ORD-20260312-002",
"disk_ids": ["disk-abc123"],
"total_price": "50.00",
"message": "购买成功"
}
}

返回字段说明

字段类型说明
order_idstring订单ID
disk_ids[]string购买的磁盘ID列表
total_pricestring订单总价(元)
messagestring提示信息

4.5 挂载磁盘到CECS实例

功能说明: 挂载磁盘到CECS实例

请求方式:POST

请求 URL

{base_url}/cecs/disks/:id/attach

请求参数

参数名类型必填说明
idstring必填磁盘ID
instance_idstring必填目标CECS实例ID

请求示例

curl -X POST "https://www.opencecs.com/api/v1/cecs/disks/disk-abc123/attach" \
-H "Authorization: Bearer eyJ...” \
#需将 eyJ... 替换为实际的 JWT Token
-H "Content-Type: application/json" \
-d '{"instance_id": "ins-xyz456"}'

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"disk_id": "disk-abc123",
"instance_id": "ins-xyz456",
"category": "data",
"status": "in_use"
}
}

返回字段说明

字段类型说明
disk_idstring磁盘ID
instance_idstring实例ID
categorystringiSCSI镜像分类
statusstring磁盘状态

4.6 从实例卸载磁盘

功能说明: 从实例卸载磁盘

请求方式:POST

请求 URL

{base_url}/cecs/disks/:id/detach

请求参数

参数名类型必填说明
idstring必填磁盘ID

请求示例

curl -X POST "https://www.opencecs.com/api/v1/cecs/disks/disk-abc123/detach" \
-H "Authorization: Bearer eyJ...”
#需将 eyJ... 替换为实际的 JWT Token

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"disk_id": "disk-abc123",
"status": "available"
}
}

返回字段说明

字段类型说明
disk_idstring磁盘ID
statusstring卸载后磁盘状态

4.7 扩容磁盘

功能说明: 扩容磁盘

请求方式:POST

请求 URL

{base_url}/cecs/disks/:id/expand

请求参数

参数名类型必填说明
idstring必填磁盘ID
new_size_gbint必填扩容后容量(GB),必须大于当前容量,50-10240

请求示例

curl -X POST "https://www.opencecs.com/api/v1/cecs/disks/disk-abc123/expand" \
-H "Authorization: Bearer eyJ...” \
#需将 eyJ... 替换为实际的 JWT Token
-H "Content-Type: application/json" \
-d '{"new_size_gb": 200}'

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"disk_id": "disk-abc123",
"old_size_gb": 100,
"new_size_gb": 200,
"extra_charge": "50.00",
"status": "in_use"
}
}

返回字段说明

字段类型说明
disk_idstring磁盘ID
old_size_gbint原容量(GB)
new_size_gbint新容量(GB)
extra_chargestring补差价(元),按量磁盘为0
statusstring磁盘状态

4.8 续费磁盘(仅包月)

功能说明: 续费磁盘(仅包月)

请求方式:POST

请求 URL

{base_url}/cecs/disks/:id/renew

请求参数

参数名类型必填说明
idstring必填磁盘ID
durationint必填续费月数:1/2/3/6/12

请求示例

curl -X POST "https://www.opencecs.com/api/v1/cecs/disks/disk-abc123/renew" \
-H "Authorization: Bearer eyJ...” \
#需将 eyJ... 替换为实际的 JWT Token
-H "Content-Type: application/json" \
-d '{"duration": 3}'

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"disk_id": "disk-abc123",
"order_id": "ORD-20260312-003",
"total_price": "150.00",
"new_expire_at": "2026-07-01 12:00:00"
}
}

返回字段说明

字段类型说明
disk_idstring磁盘ID
order_idstring续费订单ID
total_pricestring续费价格(元)
new_expire_atstring新到期时间

4.9 创建备份(功能开发中)

功能说明: 创建备份(功能开发中)

请求方式:POST

请求 URL

{base_url}/cecs/disks/:id/backup

请求参数

参数名类型必填说明
idstring必填磁盘ID
remarkstring可选备注(可选)

请求示例

curl -X POST "https://www.opencecs.com/api/v1/cecs/disks/disk-abc123/backup" \
-H "Authorization: Bearer eyJ...” \
#需将 eyJ... 替换为实际的 JWT Token \
-H "Content-Type: application/json" \
-d '{"remark": "手动备份"}'

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"backup_id": "bak-abc123",
"disk_id": "disk-abc123",
"status": "pending"
}
}

返回字段说明

字段类型说明
backup_idstring备份ID
disk_idstring磁盘ID
statusstring备份状态

4.10 格式化磁盘(清空数据,不可撤销)

功能说明: 格式化磁盘(清空数据,不可撤销)

请求方式:POST

请求 URL

{base_url}/cecs/disks/:id/format

请求参数

参数名类型必填说明
idstring必填磁盘ID,⚠️ 将清空所有数据

请求示例

curl -X POST "https://www.opencecs.com/api/v1/cecs/disks/disk-abc123/format" \
-H "Authorization: Bearer eyJ...”
# 需将 eyJ... 替换为实际的 JWT Toke

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"disk_id": "disk-abc123",
"status": "available"
}
}

返回字段说明

字段类型说明
disk_idstring磁盘ID
statusstring磁盘状态

4.11 释放磁盘

功能说明: 释放磁盘

请求方式:DELETE

请求 URL

{base_url}/cecs/disks/:id

请求参数

参数名类型必填说明
idstring必填磁盘ID,需未挂载状态

请求示例

curl -X DELETE "https://www.opencecs.com/api/v1/cecs/disks/disk-abc123" \
-H "Authorization: Bearer eyJ...”
#需将 eyJ... 替换为实际的 JWT Token

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"disk_id": "disk-abc123",
"message": "释放成功"
}
}

返回字段说明

字段类型说明
disk_idstring磁盘ID
messagestring提示信息

4.12 备份列表(功能开发中)

功能说明: 备份列表(功能开发中)

请求方式:GET

请求 URL

{base_url}/cecs/disks/:id/backups

请求参数

参数名类型必填说明
idstring必填磁盘ID

请求示例

curl -X GET "https://www.opencecs.com/api/v1/cecs/disks/disk-abc123/backups" \
-H "Authorization: Bearer eyJ...”
#需将 eyJ... 替换为实际的 JWT Token

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"list": [
{
"backup_id": "bak-abc123",
"disk_id": "disk-abc123",
"size_gb": 100,
"status": "completed",
"remark": "手动备份",
"created_at": "2026-03-12 12:00:00"
}
],
"total": 1
}
}

返回字段说明

字段类型说明
list[].backup_idstring备份ID
list[].disk_idstring磁盘ID
list[].size_gbint备份时磁盘容量(GB)
list[].statusstring备份状态
list[].remarkstring备注
list[].created_atstring创建时间
totalint总数量

4.13 删除备份(功能开发中)

功能说明: 删除备份(功能开发中)

请求方式:DELETE

请求 URL

{base_url}/cecs/disks/backups/:backup_id

请求参数

参数名类型必填说明
backup_idstring必填备份ID

请求示例

curl -X DELETE "https://www.opencecs.com/api/v1/cecs/disks/backups/bak-abc123" \
-H "Authorization: Bearer eyJ...”
#需将 eyJ... 替换为实际的 JWT Token

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": null
}

返回字段说明

字段类型说明
(空响应)-删除成功返回 HTTP 200

五、ORDER 订单

5.1 计算订单价格

功能说明: 计算订单价格

请求方式:POST

请求 URL

{base_url}/orders/calculate

请求参数

参数名类型必填说明
resource_typestring必填资源类型,填 cecs_instance
billing_modestring必填计费模式:monthly / hourly
durationint必填购买时长(月),最小1
quantityint必填购买数量,1-100
configstring必填配置JSON字符串,含 product_id / image_id 等字段

请求示例

curl -X POST "https://www.opencecs.com/api/v1/orders/calculate" \
-H "Authorization: Bearer eyJ..." \
#需将 eyJ... 替换为实际的 JWT Token
-H "Content-Type: application/json" \
-d '{
"resource_type": "cecs_instance",
"billing_mode": "monthly",
"duration": 1,
"quantity": 1,
"config": "{\"product_id\":\"prod_rk3588_8g\",\"image_id\":\"img_ubuntu22\"}"
}'

返回示例

成功:

{
"code": 0,
"message": "Success",
"data": {
"cecs_price": "299.00",
"disk_price": "0.00",
"bandwidth_price": "0.00",
"total_price": "299.00",
"price_detail": "CECS实例: 299元/月"
}
}

返回字段说明

字段类型说明
cecs_pricestringCECS设备价格(元)
disk_pricestring磁盘价格(元)
bandwidth_pricestring带宽价格(元)
total_pricestring订单总价(元)
price_detailstring价格明细描述

5.2 创建订单

功能说明:创建订单

请求方式:POST

请求URL{base_url}/orders/create

请求参数

参数名必选类型说明
order_typestring订单类型,填 purchase
resource_typestring资源类型,填 cecs_instance
billing_modestring计费模式:monthly / hourly
region_idstring地域ID
durationint购买时长(月),最小1
quantityint购买数量,1-100
configstring配置JSON字符串
idempotent_tokenstring幂等Token,防止重复提单(可选)

请求示例

curl -X POST "https://www.opencecs.com/api/v1/orders/create" \
-H "Authorization: Bearer eyJ..." \
#需将 eyJ... 替换为实际的 JWT Token
-H "Content-Type: application/json" \
-d '{
"order_type": "purchase",
"resource_type": "cecs_instance",
"billing_mode": "monthly",
"region_id": "cn-shenzhen",
"duration": 1,
"quantity": 1,
"config": "{\"product_id\":\"prod_rk3588_8g\",\"image_id\":\"img_ubuntu22\"}"
}'

返回示例

{
"code": 0,
"message": "Success",
"data": {
"order_id": "ORD-20260227-001",
"total_price": "299.00",
"status": "pending_payment",
"expired_at": "2026-03-02 12:00:00",
"created_at": "2026-03-01 12:00:00"
}
}

返回字段说明

字段类型说明
order_idstring订单号(如 ORD-20260227-001)
total_pricestring订单总价(元)
statusstring状态:pending_payment
expired_atstring支付截止时间(超时自动取消)
created_atstring创建时间

5.3 获取订单列表

功能说明:获取订单列表

请求方式:GET

请求URL{base_url}/orders/list

请求参数

参数名必选类型说明
order_typestring订单类型过滤
statusstring状态过滤
pageint页码,默认1
page_sizeint每页数量,默认10

请求示例

curl -X GET "https://www.opencecs.com/api/v1/orders/list?status=paid&page=1" \
-H "Authorization: Bearer eyJ..."
# 需将 eyJ... 替换为实际的 JWT Token

返回示例

{
"code": 0,
"message": "Success",
"data": {
"total": 10,
"list": [
{
"order_id": "ORD-20260227-001",
"resource_type": "cecs_instance",
"total_price": "299.00",
"status": "paid",
"created_at": "2026-03-01 12:00:00",
"paid_at": "2026-03-01 12:05:00"
}
]
}
}

返回字段说明

字段类型说明
totalint订单总数
list[].order_idstring订单号
list[].resource_typestring资源类型
list[].total_pricestring订单总价
list[].statusstring状态:pending_payment / paid / cancelled
list[].created_atstring创建时间
list[].paid_atstring支付时间(未支付为空)

5.4 获取订单详情

功能说明:获取订单详情

请求方式:GET

请求URL{base_url}/orders/{order_id}

请求参数

参数名必选类型说明
order_idstring订单号

请求示例

curl -X GET "https://www.opencecs.com/api/v1/orders/ORD-20260227-001" \
-H "Authorization: Bearer eyJ..."
#需将 eyJ... 替换为实际的 JWT Token

返回示例

{
"code": 0,
"message": "Success",
"data": {
"order": {
"order_id": "ORD-20260227-001",
"resource_type": "cecs_instance",
"region_name": "深圳",
"quantity": 1,
"total_price": "299.00",
"config": "{\"product_id\":\"prod_rk3588_8g\",\"image_id\":\"img_ubuntu22\"}",
"status": "paid",
"paid_at": "2026-03-01 12:05:00",
"completed_at": "2026-03-01 12:06:00"
}
}
}

返回字段说明

字段类型说明
order.order_idstring订单号
order.resource_typestring资源类型
order.region_namestring地域名称
order.quantityint购买数量
order.total_pricestring总价(元)
order.configstring配置详情JSON
order.statusstring订单状态
order.paid_atstring支付时间
order.completed_atstring完成时间

5.5 支付订单

功能说明:支付订单

请求方式:POST

请求URL{base_url}/orders/{order_id}/pay

请求参数

参数名必选类型说明
order_idstring订单号
payment_methodstring支付方式:balance(余额)/ alipay / wechat

请求示例

curl -X POST "https://www.opencecs.com/api/v1/orders/ORD-20260227-001/pay" \
-H "Authorization: Bearer eyJ..." \
#需将 eyJ... 替换为实际的 JWT Token
-H "Content-Type: application/json" \
-d '{"payment_method": "balance"}'

返回示例

{
"code": 0,
"message": "Success",
"data": {
"order_id": "ORD-20260227-001",
"status": "paid",
"paid_at": "2026-03-01 12:05:00",
"instance_ids": ["ins-abc123"]
}
}

返回字段说明

字段类型说明
order_idstring订单号
statusstring支付后状态:paid
paid_atstring支付完成时间
instance_ids[]string创建的实例ID列表

5.6 取消订单

功能说明:取消订单

请求方式:POST

请求URL{base_url}/orders/{order_id}/cancel

请求参数

参数名必选类型说明
order_idstring订单号,仅 pending_payment 状态可取消

请求示例

curl -X POST "https://www.opencecs.com/api/v1/orders/ORD-20260227-001/cancel" \
-H "Authorization: Bearer eyJ..."
#需将 eyJ... 替换为实际的 JWT Token

返回示例

{
"code": 0,
"message": "Success",
"data": {
"order_id": "ORD-20260227-001",
"status": "cancelled",
"message": "取消成功"
}
}

返回字段说明

字段类型说明
order_idstring订单号
statusstring取消后状态:cancelled
messagestring取消说明

六、FINANCE 财务

6.1 获取费用概览

功能说明:获取费用概览

请求方式:GET

请求URL{base_url}/finance/overview

请求参数:无

请求示例

curl -X GET "https://www.opencecs.com/api/v1/finance/overview" \
-H "Authorization: Bearer eyJ..."
#需将 eyJ... 替换为实际的 JWT Token

返回示例

{
"code": 0,
"message": "Success",
"data": {
"available_balance": 1000.0,
"month_consumption": 299.0,
"month_over_month_ratio": 2.5,
"month_over_month_direction": "up",
"expiring_resource_count": 3,
"invoiceable_amount": 1000.0
}
}

返回字段说明

字段类型说明
available_balancefloat64账户可用余额(元)
month_consumptionfloat64本月消费金额(元)
month_over_month_ratiofloat64环比上月变化百分点(2.5表示增长12.5%)
month_over_month_directionstring涨跌方向:up / down / flat
expiring_resource_countint30天内即将到期资源数量
invoiceable_amountfloat64可申请开票金额(元)

6.2 统一账单列表

功能说明:统一账单列表

请求方式:GET

请求URL{base_url}/finance/orders

请求参数

参数名必选类型说明
tab_typestringTab分类:all / purchase / renewal / expansion / package / recharge
billing_modestring计费模式过滤:monthly / hourly
statusstring状态过滤
start_timestring开始日期,格式 2006-01-02
end_timestring结束日期,格式 2006-01-02
pageint页码,默认1
page_sizeint每页数量,默认10,最大100

请求示例

curl -X GET "https://www.opencecs.com/api/v1/finance/orders?tab_type=all&page=1" \
-H "Authorization: Bearer eyJ..."
#需将 eyJ... 替换为实际的 JWT Token

返回示例

{
"code": 0,
"message": "Success",
"data": {
"total": 10,
"list": [
{
"order_id": "ORD-20260301-005",
"amount": 299.0,
"status": "paid",
"order_type": "purchase",
"resource_name": "CECS实例",
"billing_mode": "monthly",
"created_at": "2026-03-01 12:00:00"
}
]
}
}

返回字段说明

字段类型说明
totalint总记录数
list[].order_idstring订单号/充值单号
list[].amountfloat64金额(元)
list[].statusstring状态
list[].order_typestring订单类型(充值记录无此字段)
list[].resource_namestring资源名称
list[].billing_modestring计费模式
list[].created_atstring创建时间

6.3 即将到期资源列表

功能说明:即将到期资源列表

请求方式:GET

请求URL{base_url}/finance/expiring-resources

请求参数

参数名必选类型说明
daysint查询多少天内到期,默认30天
pageint页码,默认1
page_sizeint每页数量,默认10

请求示例

curl -X GET "https://www.opencecs.com/api/v1/finance/expiring-resources?days=7" \
-H "Authorization: Bearer eyJ..."
#需将 eyJ... 替换为实际的 JWT Token

返回示例

{
"code": 0,
"message": "Success",
"data": {
"total": 2,
"list": [
{
"resource_id": "ins-abc123",
"resource_name": "my-instance",
"resource_type": "cecs_instance",
"expire_at": "2026-03-08 12:00:00",
"remaining_days": 7
}
]
}
}

返回字段说明

字段类型说明
totalint总记录数
list[].resource_idstring资源ID
list[].resource_namestring资源名称
list[].resource_typestring资源类型:cecs_instance / cecs_disk
list[].expire_atstring到期时间
list[].remaining_daysint剩余天数

6.4 发起充值

功能说明:发起充值

请求方式:POST

请求URL{base_url}/finance/recharges

请求参数

参数名必选类型说明
amountfloat64充值金额(元),最小1,最大100000
payment_methodstring支付方式:wechat / alipay / bank_card

请求示例

curl -X POST "https://www.opencecs.com/api/v1/finance/recharges" \
-H "Authorization: Bearer eyJ..." \
#需将 eyJ... 替换为实际的 JWT Token
#需将 eyJ... 替换为实际的 JWT Token
-H "Content-Type: application/json" \
-d '{"amount": 100.00, "payment_method": "alipay"}'

返回示例

{
"code": 0,
"message": "Success",
"data": {
"recharge_id": "REC-20260301-001",
"status": "pending",
"created_at": "2026-03-01 12:00:00"
}
}

返回字段说明

字段类型说明
recharge_idstring充值单号
statusstring初始状态:pending
created_atstring创建时间

6.5 申请开票

功能说明:申请开票

请求方式:POST

请求URL{base_url}/finance/invoices

请求参数

参数名必选类型说明
amountfloat64开票金额(元),最小1
invoice_typestring发票类型:vat_general / vat_special
title_typestring抬头类型:personal / enterprise
titlestring发票抬头,1-100字符
tax_numberstring税号(企业抬头必填)
emailstring发票接收邮箱

请求示例

curl -X POST "https://www.opencecs.com/api/v1/finance/invoices" \
-H "Authorization: Bearer eyJ..." \
#需将 eyJ... 替换为实际的 JWT Token
-H "Content-Type: application/json" \
-d '{
"amount": 100.00,
"invoice_type": "vat_general",
"title_type": "enterprise",
"title": "某某科技有限公司",
"tax_number": "91440300XXXXXXXX",
"email": "finance@example.com"
}'

返回示例

{
"code": 0,
"message": "Success",
"data": {
"invoice_id": "INV-20260301-001",
"status": "applying",
"created_at": "2026-03-01 12:00:00"
}
}

返回字段说明

字段类型说明
invoice_idstring开票申请ID
statusstring初始状态:applying
created_atstring申请时间

七、PORTMAPPING 端口映射

7.1 获取端口映射概览

功能说明:获取端口映射概览

请求方式:GET

请求URL{base_url}/cecs/instances/{instance_id}/port-mappings/overview

请求参数

参数名必选类型说明
instance_idstringCECS实例ID

请求示例

curl -X GET "https://www.opencecs.com/api/v1/cecs/instances/ins-abc123/port-mappings/overview" \
-H "Authorization: Bearer {token}"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"instance_id": "ins-abc123",
"instance_name": "my-instance",
"private_ip": "192.168.1.100",
"nat_public_ip": "203.0.113.1",
"tcp": {
"used": 2,
"quota": 10,
"active_count": 2,
"failed_count": 0
},
"udp": {
"used": 1,
"quota": 5,
"active_count": 1,
"failed_count": 0
}
}
}

返回字段说明

字段类型说明
instance_idstring实例ID
instance_namestring实例名称
private_ipstring实例内网IP
nat_public_ipstring端口映射公网IP(NAT分配)
tcp.usedintTCP已使用映射数
tcp.quotaintTCP映射配额上限
tcp.active_countintTCP代理正常数量
tcp.failed_countintTCP代理异常数量
udp.usedintUDP已使用映射数
udp.quotaintUDP映射配额上限
udp.active_countintUDP代理正常数量
udp.failed_countintUDP代理异常数量

7.2 查询端口映射规则列表

功能说明:查询端口映射规则列表

请求方式:GET

请求URL{base_url}/cecs/instances/{instance_id}/port-mappings

请求参数

参数名必选类型说明
instance_idstringCECS实例ID
protocolstring协议过滤:TCP / UDP,不填返回全部
pageint页码,默认1
page_sizeint每页数量,默认10,最大50

请求示例

curl -X GET "https://www.opencecs.com/api/v1/cecs/instances/ins-abc123/port-mappings?protocol=TCP&page=1" \
-H "Authorization: Bearer {token}"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"total": 3,
"list": [
{
"mapping_id": "pm-001",
"protocol": "TCP",
"public_port": 10022,
"private_port": 22,
"remark": "SSH",
"proxy_status": "ok",
"fail_reason": "",
"created_at": "2026-03-01 12:00:00"
}
]
}
}

返回字段说明

字段类型说明
totalint规则总数
list[].mapping_idstring映射规则ID
list[].protocolstring协议:TCP / UDP
list[].public_portint公网端口(系统自动分配,不可修改)
list[].private_portint内网端口(用户配置)
list[].remarkstring备注
list[].proxy_statusstringNAT代理状态:ok / failed
list[].fail_reasonstring代理失败原因(proxy_status=ok 时为空)
list[].created_atstring规则创建时间

7.3 创建端口映射规则

功能说明:创建端口映射规则

请求方式:POST

请求URL{base_url}/cecs/instances/{instance_id}/port-mappings

请求参数

参数名必选类型说明
instance_idstringCECS实例ID
protocolstring协议:TCP / UDP
private_portint内网端口,1-65535
remarkstring备注,最多50字符

请求示例

curl -X POST "https://www.opencecs.com/api/v1/cecs/instances/ins-abc123/port-mappings" \
-H "Authorization: Bearer eyJ..." \
#需将 eyJ... 替换为实际的 JWT Token
-H "Content-Type: application/json" \
-d '{"protocol": "TCP", "private_port": 22, "remark": "SSH"}'

返回示例

{
"code": 0,
"message": "Success",
"data": {
"mapping_id": "pm-001",
"protocol": "TCP",
"public_port": 10022,
"private_port": 22,
"remark": "SSH",
"proxy_status": "ok",
"fail_reason": "",
"created_at": "2026-03-01 12:00:00"
}
}

返回字段说明

字段类型说明
mapping_idstring新建映射规则ID
protocolstring协议:TCP / UDP
public_portint系统自动分配的公网端口(固定,不可修改)
private_portint内网端口
remarkstring备注
proxy_statusstringNAT代理状态:ok(生效)/ failed(端口监听失败)
fail_reasonstring代理失败原因(proxy_status=ok 时为空)
created_atstring创建时间

7.4 修改端口映射规则

功能说明:修改端口映射规则(内网端口或备注)

请求方式:PATCH

请求URL{base_url}/cecs/instances/{instance_id}/port-mappings/{mapping_id}

请求参数

参数名必选类型说明
instance_idstringCECS实例ID
mapping_idstring映射规则ID
private_portint新内网端口(1-65535),至少传一个字段
remarkstring新备注,最多50字符

请求示例

curl -X PATCH "https://www.opencecs.com/api/v1/cecs/instances/ins-abc123/port-mappings/pm-001" \
-H "Authorization: Bearer eyJ..." \
#需将 eyJ... 替换为实际的 JWT Token
-H "Content-Type: application/json" \
-d '{"private_port": 8080, "remark": "HTTP"}'

返回示例

{
"code": 0,
"message": "Success",
"data": {
"mapping_id": "pm-002",
"protocol": "TCP",
"public_port": 10022,
"private_port": 8080,
"remark": "HTTP",
"proxy_status": "ok",
"fail_reason": "",
"created_at": "2026-03-01 12:00:00"
}
}

返回字段说明

字段类型说明
mapping_idstring映射规则ID(仅修改备注时ID不变;修改内网端口会删旧建新,ID随之更新)
protocolstring协议:TCP / UDP
public_portint公网端口(始终保持不变)
private_portint更新后的内网端口
remarkstring更新后的备注
proxy_statusstringNAT代理状态:ok / failed
fail_reasonstring代理失败原因
created_atstring规则创建时间

7.5 删除端口映射规则

功能说明:删除端口映射规则

请求方式:DELETE

请求URL{base_url}/cecs/instances/{instance_id}/port-mappings/{mapping_id}

请求参数

参数名必选类型说明
instance_idstringCECS实例ID
mapping_idstring映射规则ID

请求示例

curl -X DELETE "https://www.opencecs.com/api/v1/cecs/instances/ins-abc123/port-mappings/pm-001" \
-H "Authorization: Bearer {token}"

返回示例

{
"code": 0,
"message": "Success",
"data": {}
}

返回字段说明:无(空对象)


7.6 批量创建端口映射规则

功能说明:批量创建端口映射规则

请求方式:POST

请求URL{base_url}/cecs/instances/{instance_id}/port-mappings/batch

请求参数

参数名必选类型说明
instance_idstringCECS实例ID
rulesarray规则列表,至少1条
rules[].protocolstring协议:TCP / UDP(大小写均可)
rules[].private_portint内网端口,1-65535
rules[].remarkstring备注,最多50字符

请求示例

curl -X POST "https://www.opencecs.com/api/v1/cecs/instances/ins-abc123/port-mappings/batch" \
-H "Authorization: Bearer eyJ..." \
#需将 eyJ... 替换为实际的 JWT Token
-H "Content-Type: application/json" \
-d '{
"rules": [
{"protocol": "TCP", "private_port": 22, "remark": "SSH"},
{"protocol": "TCP", "private_port": 8080, "remark": "HTTP"}
]
}'

返回示例

{
"code": 0,
"message": "Success",
"data": {
"total": 2,
"succeeded": 2,
"failed": 0,
"results": [
{
"index": 0,
"success": true,
"data": {
"mapping_id": "pm-001",
"protocol": "TCP",
"public_port": 10022,
"private_port": 22,
"remark": "SSH",
"proxy_status": "ok",
"created_at": "2026-03-01 12:00:00"
},
"reason": ""
},
{
"index": 1,
"success": true,
"data": {
"mapping_id": "pm-002",
"protocol": "TCP",
"public_port": 10023,
"private_port": 8080,
"remark": "HTTP",
"proxy_status": "ok",
"created_at": "2026-03-01 12:00:00"
},
"reason": ""
}
]
}
}

返回字段说明

字段类型说明
totalint提交的规则总数
succeededint成功创建数量
failedint失败数量
results[].indexint对应请求 rules 数组的下标
results[].successbool该条是否成功
results[].dataobject成功时返回的映射规则详情
results[].reasonstring失败原因(success=true 时为空)

7.7 批量删除端口映射规则

功能说明:批量删除端口映射规则

请求方式:DELETE

请求URL{base_url}/cecs/instances/{instance_id}/port-mappings/batch

请求参数

参数名必选类型说明
instance_idstringCECS实例ID
mapping_ids[]string要删除的规则ID列表,至少1个

请求示例

curl -X DELETE "https://www.opencecs.com/api/v1/cecs/instances/ins-abc123/port-mappings/batch" \
-H "Authorization: Bearer eyJ..." \
#需将 eyJ... 替换为实际的 JWT Token
-H "Content-Type: application/json" \
-d '{"mapping_ids": ["pm-001", "pm-002"]}'

返回示例

{
"code": 0,
"message": "Success",
"data": {
"total": 2,
"succeeded": 2,
"failed": 0,
"results": [
{
"mapping_id": "pm-001",
"success": true,
"reason": ""
},
{
"mapping_id": "pm-002",
"success": true,
"reason": ""
}
]
}
}

返回字段说明

字段类型说明
totalint提交的ID总数
succeededint成功删除数量
failedint失败数量
results[].mapping_idstring规则ID
results[].successbool该条是否成功
results[].reasonstring失败原因(success=true 时为空)

八、SHAREDSTORAGE 共享存储

8.1 购买共享存储资源包

功能说明:购买共享存储资源包

请求方式:POST

请求URL{base_url}/shared-storage/packages/buy

请求参数

参数名必选类型说明
region_idstring地域ID
capacity_gbint购买容量(GB),100-20480
durationint购买时长(月):1/2/3/6/12
quantityint购买数量,1-10
idempotent_keystring幂等键,防止重复下单

请求示例

curl -X POST "https://www.opencecs.com/api/v1/shared-storage/packages/buy" \
-H "Authorization: Bearer eyJ..." \
#需将 eyJ... 替换为实际的 JWT Token
-H "Content-Type: application/json" \
-d '{"region_id": "cn-shenzhen", "capacity_gb": 100, "duration": 1, "quantity": 1}'

返回示例

{
"code": 0,
"message": "Success",
"data": {
"order_id": "ORD-20260301-006",
"total_price": "500.00",
"status": "pending",
"created_at": "2026-03-01 12:00:00"
}
}

返回字段说明

字段类型说明
order_idstring订单号
total_pricestring订单总价(元)
statusstring状态:pending
created_atstring创建时间

8.2 查询共享存储资源包列表

功能说明:查询共享存储资源包列表

请求方式:GET

请求URL{base_url}/shared-storage/packages

请求参数

参数名必选类型说明
region_idstring按地域过滤
statusstring状态:active / expired / grace
pageint页码,默认1
page_sizeint每页数量,默认20

请求示例

curl -X GET "https://www.opencecs.com/api/v1/shared-storage/packages?status=active" \
-H "Authorization: Bearer {token}"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"total": 2,
"list": [
{
"package_id": "pkg-001",
"region_name": "深圳",
"capacity_gb": 100,
"status": "active",
"expired_at": "2026-04-01 12:00:00",
"days_left": 13
}
]
}
}

返回字段说明

字段类型说明
totalint总数量
list[].package_idstring资源包ID
list[].region_namestring地域名称
list[].capacity_gbint容量(GB)
list[].statusstring状态:active / expired / grace
list[].expired_atstring到期时间
list[].days_leftint剩余天数(已过期为0)

8.3 共享存储概览

功能说明:共享存储概览

请求方式:GET

请求URL{base_url}/shared-storage/overview

请求参数:无

请求示例

curl -X GET "https://www.opencecs.com/api/v1/shared-storage/overview" \
-H "Authorization: Bearer {token}"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"total_gb": 200.0,
"used_gb": 45.5,
"available_gb": 154.5,
"usage_percent": 22.75,
"package_count": 2,
"instance_count": 1,
"instances": [
{
"instance_id": "si-001",
"display_name": "my-storage",
"capacity_gb": 100,
"used_percent": 45,
"access_mode": "private"
}
]
}
}

返回字段说明

字段类型说明
total_gbfloat64总配额(GB)
used_gbfloat64已使用(GB)
available_gbfloat64可用配额(GB)
usage_percentfloat64使用率(%)
package_countint有效资源包数量
instance_countint存储实例数量
instances[].instance_idstring实例ID
instances[].display_namestring存储名称
instances[].capacity_gbint分配容量(GB)
instances[].used_percentfloat64使用率(%)
instances[].access_modestring访问模式:public / private

8.4 创建共享存储实例

功能说明:创建共享存储实例

请求方式:POST

请求URL{base_url}/shared-storage/instances

请求参数

参数名必选类型说明
region_idstring地域ID
namestring存储名称,3-63字符,小写字母/数字/连字符
capacity_gbint初始容量(GB),10-500
access_modestring访问模式:public / private
descriptionstring描述,最多200字符

请求示例

curl -X POST "https://www.opencecs.com/api/v1/shared-storage/instances" \
-H "Authorization: Bearer eyJ..." \
#需将 eyJ... 替换为实际的 JWT Token
-H "Content-Type: application/json" \
-d '{"region_id": "cn-shenzhen", "name": "my-storage", "capacity_gb": 50, "access_mode": "private"}'

返回示例

{
"code": 0,
"message": "Success",
"data": {
"instance_id": "si-001",
"bucket_name": "userid_my-storage",
"display_name": "my-storage",
"intranet_addr": "http://10.0.0.1:9000/userid_my-storage",
"access_key": "abc123def456",
"created_at": "2026-03-01 12:00:00"
}
}

返回字段说明

字段类型说明
instance_idstring实例ID
bucket_namestring实际Bucket名称(userid_name格式)
display_namestring用户输入的存储名称
intranet_addrstring内网访问地址(如http://10.x.x.x:9000/bucket
access_keystring访问密钥(private模式时返回,请保存)
created_atstring创建时间

8.5 获取存储实例列表

功能说明:获取存储实例列表

请求方式:GET

请求URL{base_url}/shared-storage/instances

请求参数

参数名必选类型说明
region_idstring地域ID(必填)
namestring按存储名称模糊搜索
pageint页码,默认1
page_sizeint每页数量,默认20

请求示例

curl -X GET "https://www.opencecs.com/api/v1/shared-storage/instances?region_id=cn-shenzhen" \
-H "Authorization: Bearer {token}"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"total": 1,
"list": [
{
"instance_id": "si-001",
"display_name": "my-storage",
"intranet_addr": "http://10.0.0.1:9000/userid_my-storage",
"capacity_gb": 50,
"used_gb": 22.5,
"access_mode": "private",
"created_at": "2026-03-01 12:00:00"
}
]
}
}

返回字段说明

字段类型说明
totalint总数量
list[].instance_idstring实例ID
list[].display_namestring存储名称
list[].intranet_addrstring内网访问地址
list[].capacity_gbint分配容量(GB)
list[].used_gbfloat64已使用(GB)
list[].access_modestring访问模式
list[].created_atstring创建时间

8.6 列举目录内容

功能说明:列举目录内容

请求方式:GET

请求URL{base_url}/shared-storage/instances/{instance_id}/files

请求参数

参数名必选类型说明
instance_idstring存储实例ID
pathstring目录路径,默认 /
max_keysint最大返回条数,默认200
markerstring分页标记,上一页返回的 next_marker

请求示例

curl -X GET "https://www.opencecs.com/api/v1/shared-storage/instances/si-001/files?path=/data/" \
-H "Authorization: Bearer {token}"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"current_path": "/data/",
"dirs": [
{
"name": "images",
"full_path": "/data/images/"
}
],
"files": [
{
"name": "file.txt",
"size": 1024,
"size_readable": "1.00 KB",
"last_modified": "2026-03-01 12:00:00"
}
],
"is_truncated": false,
"next_marker": "",
"used_gb": 22.5,
"capacity_gb": 50
}
}

返回字段说明

字段类型说明
current_pathstring当前目录路径
dirs[].namestring子目录名称
dirs[].full_pathstring子目录完整路径
files[].namestring文件名
files[].sizeint64文件大小(字节)
files[].size_readablestring可读大小,如 1.23 MB
files[].last_modifiedstring最后修改时间
is_truncatedbool是否还有更多数据
next_markerstring下一页分页标记
used_gbfloat64实例已用容量(GB)
capacity_gbint实例总容量(GB)

8.7 新建文件夹

功能说明:新建文件夹

请求方式:POST

请求URL{base_url}/shared-storage/instances/{instance_id}/folders

请求参数

参数名必选类型说明
instance_idstring存储实例ID
pathstring文件夹路径,必须以 / 结尾,如 /data/images/

请求示例

curl -X POST "https://www.opencecs.com/api/v1/shared-storage/instances/si-001/folders" \
-H "Authorization: Bearer eyJ..." \
#需将 eyJ... 替换为实际的 JWT Token
-H "Content-Type: application/json" \
-d '{"path": "/data/images/"}'

返回示例

{
"code": 0,
"message": "Success",
"data": {
"path": "/data/images/",
"message": "创建成功"
}
}

返回字段说明

字段类型说明
pathstring创建的文件夹路径
messagestring操作结果

8.8 上传文件

功能说明:上传文件

请求方式:PUT

请求URL{base_url}/shared-storage/instances/{instance_id}/files/{key}

请求参数

参数名必选类型说明
instance_idstring存储实例ID
keystring文件路径,如 /data/image.png

请求示例

curl -X PUT "https://www.opencecs.com/api/v1/shared-storage/instances/si-001/files/data/image.png" \
-H "Authorization: Bearer eyJ..." \
#需将 eyJ... 替换为实际的 JWT Token
-H "Content-Type: image/png" \
--data-binary @image.png

返回示例

{
"code": 0,
"message": "Success",
"data": {
"instance_id": "si-001",
"bucket_name": "userid_my-storage",
"key": "data/image.png",
"size": 123456,
"etag": "abc123def456"
}
}

返回字段说明

字段类型说明
instance_idstring实例ID
bucket_namestringBucket名称
keystring文件路径
sizeint64文件大小(字节)
etagstringMD5

8.9 查看文件详情

功能说明:查看文件详情

请求方式:GET

请求URL{base_url}/shared-storage/instances/{instance_id}/files/{key}

请求参数

参数名必选类型说明
instance_idstring存储实例ID
keystring文件路径

请求示例

curl -X GET "https://www.opencecs.com/api/v1/shared-storage/instances/si-001/files/data/image.png" \
-H "Authorization: Bearer {token}"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"key": "data/image.png",
"size": 123456,
"size_readable": "120.56 KB",
"content_type": "image/png",
"etag": "abc123def456",
"last_modified": "2026-03-01 12:00:00"
}
}

返回字段说明

字段类型说明
keystring文件路径
sizeint64文件大小(字节)
size_readablestring可读大小
content_typestringContent-Type
etagstringETag校验值
last_modifiedstring最后修改时间

8.10 删除文件或文件夹

功能说明:删除文件或文件夹

请求方式:DELETE

请求URL{base_url}/shared-storage/instances/{instance_id}/files/{key}

请求参数

参数名必选类型说明
instance_idstring存储实例ID
keystring文件路径;删除文件夹时路径以 / 结尾

请求示例

curl -X DELETE "https://www.opencecs.com/api/v1/shared-storage/instances/si-001/files/data/image.png" \
-H "Authorization: Bearer {token}"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"key": "data/image.png",
"message": "删除成功",
"deleted": 1
}
}

返回字段说明

字段类型说明
keystring删除的路径
messagestring操作结果
deletedint实际删除的对象数量(文件夹时为递归删除数量)

8.11 重置访问密钥

功能说明:重置访问密钥

请求方式:POST

请求URL{base_url}/shared-storage/instances/{instance_id}/access-key/reset

请求参数

参数名必选类型说明
instance_idstring存储实例ID

请求示例

curl -X POST "https://www.opencecs.com/api/v1/shared-storage/instances/si-001/access-key/reset" \
-H "Authorization: Bearer {token}"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"instance_id": "si-001",
"access_key": "newkey123",
"message": "重置成功"
}
}

返回字段说明

字段类型说明
instance_idstring实例ID
access_keystring新的访问密钥(请保存,只显示一次)
messagestring操作结果

8.12 切换访问模式

功能说明:切换访问模式

请求方式:PUT

请求URL{base_url}/shared-storage/instances/{instance_id}/access-mode

请求参数

参数名必选类型说明
instance_idstring存储实例ID
access_modestring目标访问模式:public / private

请求示例

curl -X PUT "https://www.opencecs.com/api/v1/shared-storage/instances/si-001/access-mode" \
-H "Authorization: Bearer eyJ..." \
#需将 eyJ... 替换为实际的 JWT Token
-H "Content-Type: application/json" \
-d '{"access_mode": "private"}'

返回示例

{
"code": 0,
"message": "Success",
"data": {
"instance_id": "si-001",
"access_mode": "private",
"access_key": "newkey456",
"message": "切换成功"
}
}

返回字段说明

字段类型说明
instance_idstring实例ID
access_modestring切换后的访问模式
access_keystring切换至 private 时返回新密钥
messagestring操作结果

8.13 扩容存储实例

功能说明:扩容存储实例

请求方式:POST

请求URL{base_url}/shared-storage/instances/{instance_id}/expand

请求参数

参数名必选类型说明
instance_idstring存储实例ID
additional_gbint扩容大小(GB),1-500

请求示例

curl -X POST "https://www.opencecs.com/api/v1/shared-storage/instances/si-001/expand" \
-H "Authorization: Bearer eyJ..." \
#需将 eyJ... 替换为实际的 JWT Token
-H "Content-Type: application/json" \
-d '{"additional_gb": 50}'

返回示例

{
"code": 0,
"message": "Success",
"data": {
"instance_id": "si-001",
"capacity_gb": 100,
"message": "扩容成功"
}
}

返回字段说明

字段类型说明
instance_idstring实例ID
capacity_gbint扩容后总容量(GB)
messagestring操作结果

8.14 格式化存储实例

功能说明:格式化存储实例

请求方式:POST

请求URL{base_url}/shared-storage/instances/{instance_id}/format

请求参数

参数名必选类型说明
instance_idstring存储实例ID,⚠️ 会清空所有数据,不可恢复

请求示例

curl -X POST "https://www.opencecs.com/api/v1/shared-storage/instances/si-001/format" \
-H "Authorization: Bearer {token}"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"instance_id": "si-001",
"message": "格式化成功"
}
}

返回字段说明

字段类型说明
instance_idstring实例ID
messagestring格式化结果

8.15 删除存储实例

功能说明:删除存储实例

请求方式:DELETE

请求URL{base_url}/shared-storage/instances/{instance_id}

请求参数

参数名必选类型说明
instance_idstring存储实例ID,⚠️ 实例需为空才可删除

请求示例

curl -X DELETE "https://www.opencecs.com/api/v1/shared-storage/instances/si-001" \
-H "Authorization: Bearer {token}"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"instance_id": "si-001",
"message": "删除成功"
}
}

返回字段说明

字段类型说明
instance_idstring被删除的实例ID
messagestring删除结果

8.16 下载文件

功能说明:下载文件

请求方式:GET

请求URL{base_url}/shared-storage/instances/{instance_id}/download/{key}

请求参数

参数名必选类型说明
instance_idstring存储实例ID
keystring文件路径

请求示例

curl -X GET "https://www.opencecs.com/api/v1/shared-storage/instances/si-001/download/data/image.png" \
-H "Authorization: Bearer eyJ..." \
#需将 eyJ... 替换为实际的 JWT Token
--output image.png

成功返回:直接返回文件内容流,响应头含 Content-Type / Content-Length。


九、TASKLOG 定时任务

9.1 查询定时任务日志列表

功能说明:查询定时任务日志列表

请求方式:GET

请求URL{base_url}/task/logs

请求参数

参数名必选类型说明
task_namestring任务名称过滤,如 release-expired-stock
statusstring状态过滤:running / success / failed / skipped
pageint页码,默认1
page_sizeint每页条数,默认20,最大100

请求示例

curl -X GET "https://www.opencecs.com/api/v1/task/logs?status=failed&page=1" \
-H "Authorization: Bearer {token}"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"total": 5,
"page": 1,
"list": [
{
"id": 42,
"task_name": "release-expired-stock",
"task_desc": "释放过期库存",
"status": "failed",
"started_at": "2026-03-01 00:00:00",
"finished_at": "2026-03-01 00:01:00",
"duration_ms": 60000,
"result": "{\"released\":0}",
"error_msg": "库存服务异常"
}
]
}
}

返回字段说明

字段类型说明
totalint总条数
pageint当前页
list[].iduint64日志ID
list[].task_namestring任务名称
list[].task_descstring任务描述
list[].statusstring执行状态:running/success/failed/skipped
list[].started_atstring开始时间
list[].finished_atstring结束时间
list[].duration_msint耗时(毫秒)
list[].resultstring结果摘要(JSON)
list[].error_msgstring错误信息

9.2 查询定时任务日志详情

功能说明:查询定时任务日志详情

请求方式:GET

请求URL{base_url}/task/logs/{id}

请求参数

参数名必选类型说明
idint日志ID

请求示例

curl -X GET "https://www.opencecs.com/api/v1/task/logs/42" \
-H "Authorization: Bearer {token}"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"id": 42,
"task_name": "release-expired-stock",
"task_desc": "释放过期库存",
"status": "failed",
"started_at": "2026-03-01 00:00:00",
"finished_at": "2026-03-01 00:01:00",
"duration_ms": 60000,
"result": "{\"released\":0}",
"error_msg": "库存服务异常",
"created_at": "2026-03-01 00:01:00"
}
}

返回字段说明

字段类型说明
iduint64日志ID
task_namestring任务名称
task_descstring任务描述
statusstring执行状态
started_atstring开始时间
finished_atstring结束时间
duration_msint耗时(毫秒)
resultstring结果摘要(JSON)
error_msgstring错误信息
created_atstring记录创建时间

9.3 查询定时任务执行统计

功能说明:查询定时任务执行统计

请求方式:GET

请求URL{base_url}/task/logs/stats

请求参数:无

请求示例

curl -X GET "https://www.opencecs.com/api/v1/task/logs/stats" \
-H "Authorization: Bearer {token}"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"stats": [
{
"task_name": "release-expired-stock",
"task_desc": "释放过期库存",
"total_runs": 30,
"success_count": 28,
"failed_count": 2,
"skipped_count": 0,
"avg_duration_ms": 55000.5,
"last_run_at": "2026-03-01 00:00:00",
"last_status": "success"
}
]
}
}

返回字段说明

字段类型说明
stats[].task_namestring任务名称
stats[].task_descstring任务描述
stats[].total_runsint总执行次数
stats[].success_countint成功次数
stats[].failed_countint失败次数
stats[].skipped_countint跳过次数
stats[].avg_duration_msfloat64平均耗时(毫秒)
stats[].last_run_atstring最近执行时间
stats[].last_statusstring最近执行状态

十、STORAGE 对象存储

10.1 列举Bucket内对象

功能说明:列举Bucket内对象

请求方式:GET

请求URL{base_url}/storage/{bucket}

请求参数

参数名必选类型说明
bucketstringBucket名称
prefixstring前缀过滤,如 data/
delimiterstring分隔符,通常为 / 实现目录浏览
max_keysint最大返回数量,默认1000
markerstring分页标记
access_keystring访问密钥(private Bucket必填)

请求示例

curl -X GET "https://www.opencecs.com/api/v1/storage/my-bucket?prefix=data/&delimiter=/"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"objects": [
{
"key": "data/file1.txt",
"size": 1024,
"last_modified": "2026-03-01 12:00:00",
"etag": "abc123"
}
],
"common_prefixes": ["data/images/"],
"is_truncated": false,
"next_marker": ""
}
}

返回字段说明

字段类型说明
objects[].keystring对象路径
objects[].sizeint64对象大小(字节)
objects[].last_modifiedstring最后修改时间
objects[].etagstringETag校验值
common_prefixes[]string公共前缀列表(目录)
is_truncatedbool是否还有更多
next_markerstring下一页标记

10.2 获取树形目录

功能说明:获取树形目录

请求方式:GET

请求URL{base_url}/storage/{bucket}/tree

请求参数

参数名必选类型说明
bucketstringBucket名称
prefixstring起始子路径

请求示例

curl -X GET "https://www.opencecs.com/api/v1/storage/my-bucket/tree"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"bucket": "my-bucket",
"tree": [
{
"name": "data",
"path": "data/",
"type": "dir",
"children": [
{
"name": "file.txt",
"path": "data/file.txt",
"type": "file",
"size": 1024
}
]
}
]
}
}

返回字段说明

字段类型说明
bucketstringBucket名称
tree[].namestring节点名称
tree[].pathstring完整路径
tree[].typestring类型:file / dir
tree[].sizeint64文件大小(文件节点才有)
tree[].children[]TreeNode子节点(目录节点才有)

10.3 下载文件(流式)

功能说明:下载文件(流式)

请求方式:GET

请求URL{base_url}/storage/{bucket}/{key}

请求参数

参数名必选类型说明
bucketstringBucket名称
keystring文件路径
access_keystring访问密钥(private Bucket必填)

请求示例

curl -X GET "https://www.opencecs.com/api/v1/storage/my-bucket/data/image.png" --output image.png

成功返回:直接返回文件内容流,响应头含 Content-Type / Content-Length。


10.4 删除文件

功能说明:删除文件

请求方式:DELETE

请求URL{base_url}/storage/{bucket}/{key}

请求参数

参数名必选类型说明
bucketstringBucket名称
keystring文件路径

请求示例

curl -X DELETE "https://www.opencecs.com/api/v1/storage/my-bucket/data/image.png"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"bucket": "my-bucket",
"key": "data/image.png",
"message": "删除成功"
}
}

返回字段说明

字段类型说明
bucketstringBucket名称
keystring删除的文件路径
messagestring操作结果

10.5 批量删除文件

功能说明:批量删除文件

请求方式:POST

请求URL{base_url}/storage/{bucket}/batch-delete

请求参数

参数名必选类型说明
bucketstringBucket名称
keys[]string文件路径列表

请求示例

curl -X POST "https://www.opencecs.com/api/v1/storage/my-bucket/batch-delete" \
-H "Content-Type: application/json" \
-d '{"keys": ["data/a.txt", "data/b.png"]}'

返回示例

{
"code": 0,
"message": "Success",
"data": {
"total": 2,
"success": 2,
"failed": 0
}
}

返回字段说明

字段类型说明
totalint提交删除总数
successint删除成功数
failedint删除失败数

10.6 创建文件夹

功能说明:创建文件夹

请求方式:PUT

请求URL{base_url}/storage/{bucket}/folders/{path}

请求参数

参数名必选类型说明
bucketstringBucket名称
pathstring文件夹路径,支持多级

请求示例

curl -X PUT "https://www.opencecs.com/api/v1/storage/my-bucket/folders/data/images"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"bucket": "my-bucket",
"path": "data/images/",
"message": "创建成功"
}
}

返回字段说明

字段类型说明
bucketstringBucket名称
pathstring创建的路径
messagestring操作结果

10.7 删除文件夹

功能说明:删除文件夹

请求方式:DELETE

请求URL{base_url}/storage/{bucket}/folders/{path}

请求参数

参数名必选类型说明
bucketstringBucket名称
pathstring文件夹路径

请求示例

curl -X DELETE "https://www.opencecs.com/api/v1/storage/my-bucket/folders/data/images"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"bucket": "my-bucket",
"path": "data/images/",
"message": "删除成功"
}
}

返回字段说明

字段类型说明
bucketstringBucket名称
pathstring删除的路径
messagestring操作结果

10.8 移动文件或文件夹

功能说明:移动文件或文件夹

请求方式:POST

请求URL{base_url}/storage/{bucket}/move

请求参数

参数名必选类型说明
bucketstringBucket名称
srcstring源路径
dststring目标路径(不能已存在)

请求示例

curl -X POST "https://www.opencecs.com/api/v1/storage/my-bucket/move" \
-H "Content-Type: application/json" \
-d '{"src": "old/path/file.txt", "dst": "new/path/file.txt"}'

返回示例

{
"code": 0,
"message": "Success",
"data": {
"bucket": "my-bucket",
"src": "old/path/file.txt",
"dst": "new/path/file.txt",
"message": "移动成功"
}
}

返回字段说明

字段类型说明
bucketstringBucket名称
srcstring源路径
dststring目标路径
messagestring操作结果

10.9 批量下载文件(ZIP)

功能说明:批量下载文件(ZIP)

请求方式:POST

请求URL{base_url}/storage/{bucket}/batch-download

请求参数

参数名必选类型说明
bucketstringBucket名称
keys[]string文件路径列表

请求示例

curl -X POST "https://www.opencecs.com/api/v1/storage/my-bucket/batch-download" \
-H "Content-Type: application/json" \
-d '{"keys": ["data/a.txt", "data/b.png"]}' \
--output files.zip

成功返回:返回 ZIP 文件流,浏览器直接下载。


十一、STORAGEADMIN 存储管理

11.1 创建Bucket

功能说明:创建Bucket

请求方式:POST

请求URL{base_url}/storage-admin/buckets

请求参数

参数名必选类型说明
bucket_namestring3-63字符,小写字母/数字/连字符/下划线
quota_gbint配额大小(GB),最小1
access_modestring访问模式:public / private
access_keystring访问密钥,留空自动生成

请求示例

curl -X POST "https://www.opencecs.com/api/v1/storage-admin/buckets" \
-H "Content-Type: application/json" \
-d '{"bucket_name": "my-bucket", "quota_gb": 10, "access_mode": "private"}'

返回示例

{
"code": 0,
"message": "Success",
"data": {
"bucket": "my-bucket",
"lv_name": "lv-my-bucket",
"mount_point": "/mnt/lv-my-bucket",
"quota_gb": 10,
"access_mode": "private",
"access_key": "abc123def456"
}
}

返回字段说明

字段类型说明
bucketstringBucket名称
lv_namestring逻辑卷名称
mount_pointstring挂载点路径
quota_gbint配额大小(GB)
access_modestring访问模式
access_keystring访问密钥

11.2 列出所有Bucket

功能说明:列出所有Bucket

请求方式:GET

请求URL{base_url}/storage-admin/buckets

请求参数

参数名必选类型说明
pageint页码,默认1
page_sizeint每页数量,默认20,最大100
access_modestring过滤访问模式
sortstring排序字段:name / created_at / used_gb
orderstring排序方向:asc / desc

请求示例

curl -X GET "https://www.opencecs.com/api/v1/storage-admin/buckets?page=1&page_size=20"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"total": 2,
"buckets": [
{
"bucket_name": "my-bucket",
"access_mode": "private",
"quota_gb": 10.0,
"used_gb": 2.3,
"usage_percent": 23.0,
"file_count": 15,
"created_at": "2026-03-01 12:00:00"
}
]
}
}

返回字段说明

字段类型说明
totalint总数量
buckets[].bucket_namestringBucket名称
buckets[].access_modestring访问模式
buckets[].quota_gbfloat64配额(GB)
buckets[].used_gbfloat64已用(GB)
buckets[].usage_percentfloat64使用率(%)
buckets[].file_countint文件数量
buckets[].created_atstring创建时间

11.3 查询Bucket详情

功能说明:查询Bucket详情

请求方式:GET

请求URL{base_url}/storage-admin/buckets/{bucket}

请求参数

参数名必选类型说明
bucketstringBucket名称

请求示例

curl -X GET "https://www.opencecs.com/api/v1/storage-admin/buckets/my-bucket"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"bucket_name": "my-bucket",
"lv_name": "lv-my-bucket",
"access_mode": "private",
"access_key": "abc123def456",
"quota_gb": 10.0,
"used_gb": 2.3,
"usage_percent": 23.0,
"file_count": 15,
"created_at": "2026-03-01 12:00:00",
"updated_at": "2026-03-01 12:00:00"
}
}

返回字段说明

字段类型说明
bucket_namestringBucket名称
lv_namestring逻辑卷名称
access_modestring访问模式
access_keystring访问密钥明文(管理员可见)
quota_gbfloat64配额(GB)
used_gbfloat64已用(GB)
usage_percentfloat64使用率(%)
file_countint文件数量
created_atstring创建时间
updated_atstring最后更新时间

11.4 删除Bucket

功能说明:删除Bucket

请求方式:DELETE

请求URL{base_url}/storage-admin/buckets/{bucket}

请求参数

参数名必选类型说明
bucketstringBucket名称

请求示例

curl -X DELETE "https://www.opencecs.com/api/v1/storage-admin/buckets/my-bucket"

返回示例

{
"code": 0,
"message": "Success",
"data": null
}

返回字段说明:无(空响应)


11.5 扩容Bucket

功能说明:扩容Bucket

请求方式:POST

请求URL{base_url}/storage-admin/buckets/{bucket}/expand

请求参数

参数名必选类型说明
bucketstringBucket名称
additional_gbint扩容大小(GB),最小1

请求示例

curl -X POST "https://www.opencecs.com/api/v1/storage-admin/buckets/my-bucket/expand" \
-H "Content-Type: application/json" \
-d '{"additional_gb": 10}'

返回示例

{
"code": 0,
"message": "Success",
"data": {
"bucket": "my-bucket",
"additional_gb": 10,
"quota_bytes": 21474836480
}
}

返回字段说明

字段类型说明
bucketstringBucket名称
additional_gbint本次扩容量(GB)
quota_bytesuint64扩容后总配额(字节)

11.6 格式化Bucket

功能说明:格式化Bucket

请求方式:POST

请求URL{base_url}/storage-admin/buckets/{bucket}/format

请求参数

参数名必选类型说明
bucketstringBucket名称,⚠️ 会清空所有数据

请求示例

curl -X POST "https://www.opencecs.com/api/v1/storage-admin/buckets/my-bucket/format"

返回示例

{
"code": 0,
"message": "Success",
"data": null
}

返回字段说明:无(空响应)


11.7 更新访问密钥

功能说明:更新访问密钥

请求方式:PUT

请求URL{base_url}/storage-admin/buckets/{bucket}/access-key

请求参数

参数名必选类型说明
bucketstringBucket名称
access_keystring新密钥,留空自动生成

请求示例

curl -X PUT "https://www.opencecs.com/api/v1/storage-admin/buckets/my-bucket/access-key" \
-H "Content-Type: application/json" \
-d '{"access_key": ""}'

返回示例

{
"code": 0,
"message": "Success",
"data": {
"bucket": "my-bucket",
"access_key": "newkey789",
"message": "更新成功"
}
}

返回字段说明

字段类型说明
bucketstringBucket名称
access_keystring新的访问密钥
messagestring操作结果

11.8 更新访问模式

功能说明:更新访问模式

请求方式:PUT

请求URL{base_url}/storage-admin/buckets/{bucket}/access-mode

请求参数

参数名必选类型说明
bucketstringBucket名称
access_modestringpublic / private

请求示例

curl -X PUT "https://www.opencecs.com/api/v1/storage-admin/buckets/my-bucket/access-mode" \
-H "Content-Type: application/json" \
-d '{"access_mode": "private"}'

返回示例

{
"code": 0,
"message": "Success",
"data": {
"bucket": "my-bucket",
"access_mode": "private",
"message": "更新成功"
}
}

返回字段说明

字段类型说明
bucketstringBucket名称
access_modestring更新后访问模式
messagestring操作结果

11.9 获取Bucket使用量

功能说明:获取Bucket使用量

请求方式:GET

请求URL{base_url}/storage-admin/buckets/{bucket}/usage

请求参数

参数名必选类型说明
bucketstringBucket名称

请求示例

curl -X GET "https://www.opencecs.com/api/v1/storage-admin/buckets/my-bucket/usage"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"bucket": "my-bucket",
"quota_bytes": 10737418240,
"used_bytes": 2474631168,
"avail_bytes": 8262787072,
"usage_percent": 23.05
}
}

返回字段说明

字段类型说明
bucketstringBucket名称
quota_bytesuint64配额(字节)
used_bytesuint64已用(字节)
avail_bytesuint64可用(字节)
usage_percentfloat64使用率(%)

11.10 列举对象(管理员)

功能说明:列举对象(管理员)

请求方式:GET

请求URL{base_url}/storage-admin/buckets/{bucket}/objects

请求参数

参数名必选类型说明
bucketstringBucket名称
prefixstring前缀过滤
delimiterstring分隔符
max_keysint最大返回数量,默认1000
markerstring分页标记

请求示例

curl -X GET "https://www.opencecs.com/api/v1/storage-admin/buckets/my-bucket/objects?delimiter=/"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"objects": [
{
"key": "data/file.txt",
"size": 1024,
"last_modified": "2026-03-01 12:00:00"
}
],
"common_prefixes": ["data/images/"],
"is_truncated": false
}
}

返回字段说明

字段类型说明
objects[].keystring对象路径
objects[].sizeint64大小(字节)
objects[].last_modifiedstring修改时间
common_prefixes[]string目录前缀列表
is_truncatedbool是否还有更多

11.11 删除文件(管理员)

功能说明:删除文件(管理员)

请求方式:DELETE

请求URL{base_url}/storage-admin/buckets/{bucket}/objects/{key}

请求参数

参数名必选类型说明
bucketstringBucket名称
keystring文件路径

请求示例

curl -X DELETE "https://www.opencecs.com/api/v1/storage-admin/buckets/my-bucket/objects/data/file.txt"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"bucket": "my-bucket",
"key": "data/file.txt",
"message": "删除成功"
}
}

返回字段说明

字段类型说明
bucketstringBucket名称
keystring删除的路径
messagestring操作结果

11.12 批量删除(管理员)

功能说明:批量删除(管理员)

请求方式:POST

请求URL{base_url}/storage-admin/buckets/{bucket}/objects/batch-delete

请求参数

参数名必选类型说明
bucketstringBucket名称
keys[]string文件路径列表

请求示例

curl -X POST "https://www.opencecs.com/api/v1/storage-admin/buckets/my-bucket/objects/batch-delete" \
-H "Content-Type: application/json" \
-d '{"keys": ["data/a.txt", "data/b.png"]}'

返回示例

{
"code": 0,
"message": "Success",
"data": {
"total": 2,
"success": 2,
"failed": 0
}
}

返回字段说明

字段类型说明
totalint提交删除总数
successint删除成功数
failedint删除失败数

11.13 获取树形目录(管理员)

功能说明:获取树形目录(管理员)

请求方式:GET

请求URL{base_url}/storage-admin/buckets/{bucket}/tree

请求参数

参数名必选类型说明
bucketstringBucket名称
prefixstring起始子路径

请求示例

curl -X GET "https://www.opencecs.com/api/v1/storage-admin/buckets/my-bucket/tree"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"bucket": "my-bucket",
"tree": [
{
"name": "data",
"path": "data/",
"type": "dir",
"children": [
{
"name": "file.txt",
"path": "data/file.txt",
"type": "file",
"size": 1024
}
]
}
]
}
}

返回字段说明

字段类型说明
bucketstringBucket名称
tree[].namestring节点名称
tree[].pathstring完整路径
tree[].typestring类型:file / dir
tree[].children[]TreeNode子节点

11.14 创建文件夹(管理员)

功能说明:创建文件夹(管理员)

请求方式:PUT

请求URL{base_url}/storage-admin/buckets/{bucket}/folders/{path}

请求参数

参数名必选类型说明
bucketstringBucket名称
pathstring文件夹路径

请求示例

curl -X PUT "https://www.opencecs.com/api/v1/storage-admin/buckets/my-bucket/folders/data/images"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"bucket": "my-bucket",
"path": "data/images/",
"message": "创建成功"
}
}

返回字段说明

字段类型说明
bucketstringBucket名称
pathstring创建的路径
messagestring操作结果

11.15 删除文件夹(管理员)

功能说明:删除文件夹(管理员)

请求方式:DELETE

请求URL{base_url}/storage-admin/buckets/{bucket}/folders/{path}

请求参数

参数名必选类型说明
bucketstringBucket名称
pathstring文件夹路径

请求示例

curl -X DELETE "https://www.opencecs.com/api/v1/storage-admin/buckets/my-bucket/folders/data/images"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"bucket": "my-bucket",
"path": "data/images/",
"message": "删除成功"
}
}

返回字段说明

字段类型说明
bucketstringBucket名称
pathstring删除的路径
messagestring操作结果

11.16 移动文件或文件夹(管理员)

功能说明:移动文件或文件夹(管理员)

请求方式:POST

请求URL{base_url}/storage-admin/buckets/{bucket}/move

请求参数

参数名必选类型说明
bucketstringBucket名称
srcstring源路径
dststring目标路径(不能已存在)

请求示例

curl -X POST "https://www.opencecs.com/api/v1/storage-admin/buckets/my-bucket/move" \
-H "Content-Type: application/json" \
-d '{"src": "old/file.txt", "dst": "new/file.txt"}'

返回示例

{
"code": 0,
"message": "Success",
"data": {
"bucket": "my-bucket",
"src": "old/file.txt",
"dst": "new/file.txt",
"message": "移动成功"
}
}

返回字段说明

字段类型说明
bucketstringBucket名称
srcstring源路径
dststring目标路径
messagestring操作结果

11.17 卷组统计

功能说明:卷组统计

请求方式:GET

请求URL{base_url}/storage-admin/stats/vg

请求参数:无

请求示例

curl -X GET "https://www.opencecs.com/api/v1/storage-admin/stats/vg"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"vg_name": "vg_storage",
"total_bytes": 1099511627776,
"free_bytes": 549755813888,
"used_bytes": 549755813888,
"lv_count": 10,
"usage_percent": 50.0,
"bucket_count": 8
}
}

返回字段说明

字段类型说明
vg_namestring卷组名称
total_bytesint64总容量(字节)
free_bytesint64空闲容量(字节)
used_bytesint64已用容量(字节)
lv_countint逻辑卷数量
usage_percentfloat64使用率(%)
bucket_countintBucket数量

11.18 健康检查(含CPU/内存/网络)

功能说明:健康检查(含CPU/内存/网络)

请求方式:GET

请求URL{base_url}/storage-admin/health

请求参数:无

请求示例

curl -X GET "https://www.opencecs.com/api/v1/storage-admin/health"

返回示例

{
"code": 0,
"message": "Success",
"data": {
"status": "healthy",
"message": "all systems operational",
"storage": {
"status": "healthy",
"usage_percent": 45.2
},
"cpu": {
"usage_percent": 12.5,
"load_avg_1m": 0.8
},
"memory": {
"usage_percent": 30.1
},
"network": {
"tcp_established": 120
}
}
}

返回字段说明

字段类型说明
statusstring总体健康状态:healthy / degraded / unhealthy
messagestring状态描述
storage.statusstring存储层状态
storage.usage_percentfloat64存储使用率(%)
cpu.usage_percentfloat64CPU使用率(%)
cpu.load_avg_1mfloat641分钟平均负载
memory.usage_percentfloat64内存使用率(%)
network.tcp_establishedintTCP ESTABLISHED连接数

11.19 磁盘空间预检

功能说明:磁盘空间预检

请求方式:HEAD

请求URL{base_url}/storage-admin/buckets/{bucket}/check

请求参数

参数名必选类型说明
bucketstringBucket名称
sizeint待上传文件字节数

请求示例

curl -I "https://www.opencecs.com/api/v1/storage-admin/buckets/my-bucket/check?size=1048576"

成功返回:HTTP 200 表示空间充足,响应头包含可用空间信息。

响应头示例

X-Available-Bytes: 10737418240
X-Available: true

11.20 批量下载ZIP(管理员)

功能说明:批量下载ZIP(管理员)

请求方式:POST

请求URL{base_url}/storage-admin/buckets/{bucket}/objects/batch-download

请求参数

参数名必选类型说明
bucketstringBucket名称
keys[]string文件路径列表

请求示例

curl -X POST "https://www.opencecs.com/api/v1/storage-admin/buckets/my-bucket/objects/batch-download" \
-H "Content-Type: application/json" \
-d '{"keys": ["data/a.txt", "data/b.png"]}' \
--output files.zip

成功返回:返回 ZIP 文件流,浏览器直接下载。


十二、METRICS 流量上报

12.1 宿主机Agent上报带宽流量

功能说明:宿主机Agent上报带宽流量

请求方式:POST

请求URL{base_url}/metrics/report

请求参数

参数名必选类型说明
instance_idstringCECS实例ID
private_ipstring实例内网IP
macstring实例网卡MAC地址
rx_bytesint64自上次上报的接收字节增量
tx_bytesint64自上次上报的发送字节增量
timestampint64Unix毫秒时间戳,不传则用服务器时间

请求示例

curl -X POST "{base_url}/metrics/report" \
-H "Authorization: Bearer {agent_api_key}" \
-H "Content-Type: application/json" \
-d '{
"instance_id": "CECS-XXXXXXXX",
"private_ip": "192.168.1.100",
"mac": "52:54:00:ab:cd:ef",
"rx_bytes": 1234567890,
"tx_bytes": 9876543210,
"timestamp": 1735689900000
}'

返回示例

成功返回:

json
{
"code": 0,
"message": "上报成功",
"data": null
}