1. 通过 JavaSDK 操作云盘资源
本文档说明如何通过 JavaSDK 操作您的云盘资源。
本文档中涉及到的 AccessKey 和 SecretAccessKey 只用作演示用,不作为您真实操作自己资源的依据。
本文档中涉及到的链接信息实际应为https://ai.blsc.cn (opens in a new tab)
本页所有接口都用到可用区信息,可用区具体说明详见 可用区, 本页不再重复说明
本页所有接口都用到资源规格信息,资源规格具体说明详见 资源规格, 本页不再重复说明
本页所有接口返回信息都包含异步任务信息,异步任务具体说明详见 异步任务, 本页不再重复说明
1.1. 创建云盘询价
// 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
// 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
String AccessKey = "abcd";
String SecretAccessKey = "abcd1234";
ClientProfile clientProfile = new ClientProfile(AccessKey,SecretAccessKey);
// 实例化一个请求产品的client对象
EBSClient client = new EBSClient(clientProfile);
// 实例化一个请求对象,每个接口都会对应一个request对象
CreateDisksRequest createDisksRequest = new CreateDisksRequest();
// 云盘所属可用区
createDisksRequest.setZoneCode("cn-zhongwei-a");
// 目标计费类型
createDisksRequest.setBillingType(BillingTypeEnum.PostPaid);
// 云盘类型。参考DiskType.diskType值
createDisksRequest.setDiskType("HDD");
// 云盘大小,单位GB
createDisksRequest.setDiskSize(30);
// 返回的response是一个AICloudResponse实例
// 该实例有三个重要属性,分别是code、message和data
AICloudResponse<InquiryPriceResponse> inquirePriceResponse = client.InquirePriceCreateDisks(createDisksRequest);
// code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
int code = inquirePriceResponse.getCode();
// message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
String message = inquirePriceResponse.getMessage();
InquiryPriceResponse data = inquirePriceResponse.getData();
// data属性为实际返回的询价信息列表。数据类型为InquiryPriceResponse实例
// InquiryPriceResponse类主要属性包括
// originPrice询价总额。如果items中包含多个值,则是多个值的originPrice总和
// items询价明细列表,items数据类型是List[InquiryPriceItem]
// InquiryPriceItem类主要属性包括
// size 云盘大小
// originPrice单个云盘询价结果
1.2. 创建云盘
// 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
// 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
String AccessKey = "abcd";
String SecretAccessKey = "abcd1234";
ClientProfile clientProfile = new ClientProfile(AccessKey,SecretAccessKey);
// 实例化一个请求产品的client对象
EBSClient client = new EBSClient(clientProfile);
// 实例化一个请求对象,每个接口都会对应一个request对象
CreateDisksRequest createDisksRequest = new CreateDisksRequest();
// 设置待创建云盘所属可用区信息
createDisksRequest.setZoneCode("cn-zhongwei-a");
// 设置待创建云盘名称
createDisksRequest.setAliasName("ebs-hyxonpiy");
// 设置待创建云盘计费类型
createDisksRequest.setBillingType(BillingTypeEnum.PostPaid);
// 设置待创建云盘类型
createDisksRequest.setDiskType("HDD");
// 设置待创建云盘大小
createDisksRequest.setDiskSize(30);
// 返回的response是一个CreateDisksResponse实例
// 该实例有三个重要属性,分别是code、message和data
AICloudResponse<List<Job>> createDisksResponse = client.CreateDisks(createDisksRequest);
// code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
int code = createDisksResponse.getCode();
// message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
String message = createDisksResponse.getMessage();
// data属性为实际返回的异步任务信息列表。数据类型为List[Job]
List<Job> jobs = createDisksResponse.getData();
// 您可以通过jobs.get(0).getJobUuid()的方式获得异步任务id
// 通过jobUuid可以查询异步任务接口获取当前操作的状态
1.3. 挂载云盘
// 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
// 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
String AccessKey = "abcd";
String SecretAccessKey = "abcd1234";
ClientProfile clientProfile = new ClientProfile(AccessKey,SecretAccessKey);
// 实例化一个请求产品的client对象
EBSClient client = new EBSClient(clientProfile);
// 实例化一个请求对象,每个接口都会对应一个request对象
AttachDisksRequest attachDisksRequest = new AttachDisksRequest();
// 设置云盘所属可用区编码
attachDisksRequest.setZoneCode("cn-zhongwei-a");
// 设置云盘Uuid信息
attachDisksRequest.setEcsUuid("eb4fc7cd-20ca-45be-ae7e-2eaba7bb0526");
// 设置目标挂载的云服务器实例信息
attachDisksRequest.setEbsUuids(Collections.singletonList("0b10b042-aebe-4532-bb45-f50f64d88950"));
// 返回的response是一个AttachDisksResponse实例
// 该实例有三个重要属性,分别是code、message和data
AICloudResponse<List<Job>> attachDisksResponse = client.AttachDisks(attachDisksRequest);
// code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
int code = attachDisksResponse.getCode();
// message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
String message = attachDisksResponse.getMessage();
// data属性为实际返回的异步任务信息列表。数据类型为List[Job]
List<Job> jobs = attachDisksResponse.getData();
// 您可以通过jobs.get(0).getJobUuid()的方式获得异步任务id
// 通过jobUuid可以查询异步任务接口获取当前操作的状态
1.4. 卸载云盘
// 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
// 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
String AccessKey = "abcd";
String SecretAccessKey = "abcd1234";
ClientProfile clientProfile = new ClientProfile(AccessKey,SecretAccessKey);
// 实例化一个请求产品的client对象
EBSClient client = new EBSClient(clientProfile);
// 实例化一个请求对象,每个接口都会对应一个request对象
DetachDisksRequest detachDisksRequest = new DetachDisksRequest();
// 设置云盘所属可用区信息
detachDisksRequest.setZoneCode("cn-zhongwei-a");
// 设置从哪台云服务器实例上卸载云盘
detachDisksRequest.setEcsUuid("eb4fc7cd-20ca-45be-ae7e-2eaba7bb0526");
// 设置从哪台云服务器实例上卸载云盘
detachDisksRequest.setEbsUuids(Collections.singletonList("0b10b042-aebe-4532-bb45-f50f64d88950"));
// 返回的response是一个DetachDisksResponse实例
// 该实例有三个重要属性,分别是code、message和data
AICloudResponse<List<Job>> detachDisksResponse = client.DetachDisks(detachDisksRequest);
// code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
int code = detachDisksResponse.getCode();
// message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
String message = detachDisksResponse.getMessage();
// data属性为实际返回的异步任务信息列表。数据类型为List[Job]
List<Job> jobs = detachDisksResponse.getData();
// 您可以通过jobs.get(0).getJobUuid()的方式获得异步任务id
// 通过jobUuid可以查询异步任务接口获取当前操作的状态
1.5. 续费云盘
// 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
// 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
String AccessKey = "abcd";
String SecretAccessKey = "abcd1234";
ClientProfile clientProfile = new ClientProfile(AccessKey,SecretAccessKey);
// 实例化一个请求产品的client对象
EBSClient client = new EBSClient(clientProfile);
// 实例化一个请求对象,每个接口都会对应一个request对象
RenewDisksRequest renewDisksRequest = new RenewDisksRequest();
// 待续费云盘所属可用区
renewDisksRequest.setZoneCode("cn-zhongwei-a");
// 待续费云盘Uuid信息
renewDisksRequest.setEbsUuids(Collections.singletonList("9413785f-05c1-4553-a45e-2ec267044864"));
// 续费月数
renewDisksRequest.setPeriod(1);
// 返回的response是一个AICloudResponse实例
AICloudResponse<String> renewDisksResponse = client.RenewDisks(renewDisksRequest);
// code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
int code = renewDisksResponse.getCode();
// message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
String message = renewDisksResponse.getMessage();
1.6. 删除云盘
// 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
// 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
String AccessKey = "abcd";
String SecretAccessKey = "abcd1234";
ClientProfile clientProfile = new ClientProfile(AccessKey,SecretAccessKey);
// 实例化一个请求产品的client对象
EBSClient client = new EBSClient(clientProfile);
// 实例化一个请求对象,每个接口都会对应一个request对象
DeleteDisksRequest deleteDisksRequest = new DeleteDisksRequest();
// 待删除云盘所在可用区
deleteDisksRequest.setZoneCode("cn-zhongwei-a");
// 待删除云盘的Uuid信息
deleteDisksRequest.setEbsUuids(Collections.singletonList("6b7c021e-36ed-418f-95da-096b6c93ddfe"));
// 返回的response是一个DeleteDisksResponse实例
// 该实例有三个重要属性,分别是code、message和data
AICloudResponse<List<Job>> deleteDisksResponse = client.DeleteDisks(deleteDisksRequest);
// code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
int code = deleteDisksResponse.getCode();
// message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
String message = deleteDisksResponse.getMessage();
// data属性为实际返回的异步任务信息列表。数据类型为List[Job]
List<Job> jobs = deleteDisksResponse.getData();
// 您可以通过jobs.get(0).getJobUuid()的方式获得异步任务id
// 通过jobUuid可以查询异步任务接口获取当前操作的状态
1.7. 查询云盘列表
云盘查询接口返回EBS信息,具体说明详见 EBS, 本页不再重复说明
// 实例化一个认证对象,入参需要传入智算云平台账户AccessKey和SecretAccessKey,此处还需注意密钥对的保密
// 秘钥可前往智算云平台->个人中心->我的秘钥进行获取
String AccessKey = "abcd";
String SecretAccessKey = "abcd1234";
ClientProfile clientProfile = new ClientProfile(AccessKey,SecretAccessKey);
// 实例化一个请求产品的client对象
EBSClient client = new EBSClient(clientProfile);
// 实例化一个请求对象,每个接口都会对应一个request对象
DescribeDisksRequest describeDisksRequest = new DescribeDisksRequest();
// 待查询列表使用云服务器id过滤。该参数可选
describeDisksRequest.setEcsUuid("de5995e8-180d-4445-842f-1e3ab0d15d3a");
// 待查询列表使用云盘id过滤。该参数可选
describeDisksRequest.setEbsUuid("9d0a06b8-cd8a-4bd5-af8e-445b8b63b0e7");
// 待查询列表使用云盘名称过滤。改参数可选
describeDisksRequest.setAliasName("ecs-pnwtykfs-volumn-2")
// 分页页号,该参数可选。默认1
describeDisksRequest.setPageNum(1);
// 分页页大小,该参数可选。默认200
describeDisksRequest.setPageSize(200);
// 返回的response是一个AICloudResponse实例
// 该实例有三个重要属性,分别是code、message和data
AICloudResponse<PageData<EBS>> describeDisksResponse = client.DescribeDisks(describeDisksRequest);
// code属性表示本次请求返回的编码。该编码200表示正常,非200表示异常
int code = describeDisksResponse.getCode();
// message属性表示本次请求返回的信息。如果code值为非200,则可通过message获得请求异常原因
String message = describeDisksResponse.getMessage();
// data属性为实际返回的云盘信息列表。数据类型为PageData
PageData<EBS> pageData = describeDisksResponse.getData();
// PageEBSData类包含如下重要属性
// pageNum当前页号
Integer pageNum = pageData.getPageNum();
// pageSize页大小
Integer pageSize = pageData.getPageSize();
// 总数据量
Long total = pageData.getTotal();
// rows表示返回的云盘信息列表,数据类型为List[EBS]
List<EBS> rows = pageData.getRows();