云硬盘创建
该接口通过鉴权接口颁发的token作为访问令牌,需保证实名验证通过的才能进行云硬盘创建,同一区域硬盘创建不能超过1000G ,每次创建硬盘大小不得小于20G。需确认余额充足必须满足扣费一小时。如创建硬盘并且同时需要挂载,需要从我的主机列表中取得主机ID。目前云硬盘订购类型仅支持’按量’ useType=0。挂载的主机必须是关机。主机从未开过机不支持挂载。挂载提交后为挂载中,待后台处理完成后扭转为使用中。每台主机挂载云硬盘的上限30。
1.接口描述
接口请求地址:POST v1/PveMachineHardDisk/open/create
2.输入参数
| 参数名称 | 描述 | 是否必选 | 类型 | Location |
|---|---|---|---|---|
| Finovy-Access-Token | 令牌-口令 | yes | string | header |
| pveId | 挂载的主机实例ID (主机'area'须跟上传'area'的保持一致) | no | string | body |
| area | 云硬盘区域 (0华南、1华西、2国际)(云硬盘'area'跟主机'area'须保持一致) | yes | int | body |
| memory | 内存,单位/G | yes | int | body |
| isMount | 是否挂载到主机(0:否、1:是) 选择挂载到主机 主机实例ID 必填 | yes | int | body |
3.输出参数
| 参数名称 | 描述 | 类型 |
|---|---|---|
| data | 云硬盘ID | string |
4.示例
示例1:请求成功示例
输入示例
GET https://client.xuandashi.com/v1/PveMachineHardDisk/open/create
Finovy-Access-Token: 4vL4rcNGNcgx5v0RLCcFew
<公共请求参数>
{
"pveId":"teTapaSUFq",
"area":1,
"memory": 32,
"isMount": 0
}
输出示例
{
"code": 0,
"data": "teTapaSUFq",
"msg": "success",
"success": true,
"traceId": "xxxxxxxxxxxxxx"
}
5.错误码
| 错误码 | 错误描述 | 解决方案 |
|---|---|---|
| 1021 | 机器不存在 | 确认主机实例ID是否正确 ,请联系客服处理 |
| 1037 | 未进行实名认证 | 请完成实名认证 |
| 6003 | 钱包余额不足一小时 | 确保钱包余额充足 |
| 220009 | 主机未关机 | 先执行开机,开机关机后再进行挂载 |
| 220010 | 主机挂载硬盘限制 | 主机挂载硬盘限制超限,可以先卸载再进行挂载 |
| 220012 | 主机未开机 | 先执行开机,开机关机后再进行挂载 |
| 220013 | 云硬盘内存小于20G | 创建云硬盘容量需要大于20G以上 |
| 220014 | 云硬盘内存大于最大限制 | 创建云硬盘容量需要小于20480G |
| 220015 | 主机实例ID未传参 | 传入正确的主机实例ID |
| 220016 | 主机实例不存在 | 从我的主机列表中取主机,没有主机先创建主机 |
| 220017 | 主机实例订购类型不是按量类型 | 选择正确的主机类型 |
| 220018 | 云硬盘和主机实例不在同一地区 | 确定主机区域与云硬盘区域,须保持一致 |
| 220020 | 创建云硬盘的购买数量参数错误 | 创建云硬盘的是否挂载主机参数错误 |
| 220025 | 创建硬盘请求超时 | 请求太过频繁,请稍后再试 |
6.Java请求示例
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
class Main {
public static void main(String[] args) throws IOException {
URL url = new URL("https://client.xuandashi.com/v1/PveMachineHardDisk/open/create");
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
httpConn.setRequestMethod("GET");
httpConn.setRequestProperty("Content-Type", "application/json");
httpConn.setRequestProperty("Finovy-Access-Token", "3V41hUWEwlwKH44m7SpJOs");
httpConn.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(httpConn.getOutputStream());
writer.write("{ \"pveId\": \"teTapaSUFq\", \"area\": \"1\"\"memory\": 32}");
writer.flush();
writer.close();
httpConn.getOutputStream().close();
InputStream responseStream = httpConn.getResponseCode() / 100 == 2
? httpConn.getInputStream()
: httpConn.getErrorStream();
Scanner s = new Scanner(responseStream).useDelimiter("\\A");
String response = s.hasNext() ? s.next() : "";
System.out.println(response);
}
}