阅读本文,您可以获取 Java SDK 镜像管理的接口调用示例,实现快速开发。
说明
本文的调用示例包含接口的部分参数。由于参数间可能存在互斥关系,在调用时,请您参考注释,进行调整。
调用接口前,请先完成 Java SDK 的安装及初始化操作。
本节为您介绍镜像管理相关接口的功能和调用示例。
您可以调用 ListImage 接口查询镜像信息 ListImage。详细的参数说明可参见 ListImage 接口文档。
接口调用示例如下所示。
package com.volcengine.ACEP.demo; import com.volcengine.model.acep.*; import com.volcengine.service.acep.ACEPService; public class ListImageDemo { public static void main(String[] args) { // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY ACEPService service = ACEPService.getInstance(); service.setAccessKey(System.getenv("VOLC_ACCESSKEY")); service.setSecretKey(System.getenv("VOLC_SECRETKEY")); ListImageQuery query = new ListImageQuery(); // 火山引擎账号 ID。 query.setAccountId("21000xxxx"); // 镜像 ID。可以指定单个需要查询的镜像。 query.setImageId("img-xxxxx1"); // 镜像 ID 列表,可以指定多个需要查询的镜像,以英文逗号","分割。 query.setImageIdList("img-xxxxx2,img-xxxxx3"); // 镜像名称 query.setImageName("image-1459450162840xxxxxx"); // 镜像版本,包含以下取值: // <li> 10:AOSP 10; </li> // <li> 11:AOSP 11。 </li> query.setAospVersion("10"); // 是否查找公共镜像,包含以下取值: // <li> true:查找公共镜像; </li> // <li> false:(默认值)用户自定义镜像。 </li> query.setIsPublic(false); // 镜像状态,包含以下取值: // <li> 0:未知; </li> // <li> 1:导入中,待构建; </li> // <li> 2:构建中; </li> // <li> 11:构建完成; </li> // <li> -1:构建失败。 </li> query.setImageStatus(11); // 查询结果的起始位置,用于指定从哪一条记录开始返回数据。例如,若 Offset 为 10,则表示从第 11 条记录开始。默认值为 0。 // note: // 可与 Count 配合使用。假设当前数据集的记录总数为 200 条,如需查询第 101~150 条数据,需设置 Offset 为 100,Count 为 50。 query.setOffset((long) 0); // 单次查询返回的最大记录数,用于控制每次查询返回的数据量。例如,若 Count 为 100,则表示在查询数据时,系统将每次返回 100 条记录。 // note: // 可与 Offset 配合使用。假设当前数据集的记录总数为 200 条,如需查询第 101~150 条数据,需设置 Offset 为 100,Count 为 50。 query.setCount((long) 10); // 是否查询未发布的公共镜像,包含以下取值: // <li> true:是,此时需要提供准确的 ImageId; </li> // <li> false:(默认值)否,只查询已发布的公共镜像 </li> query.setExpandScope(false); // 业务 ID,可在「云手机控制台-业务管理-业务详情」中获取。 query.setProductId("1591495366954xxxxxx"); try { ListImageRes resp = service.listImage(query); System.out.println(resp); } catch (Exception e) { e.printStackTrace(); } } }
您可以调用 ListImageResource 接口查询镜像分布 ListImageResource。详细的参数说明可参见 ListImageResource 接口文档。
接口调用示例如下所示。
package com.volcengine.ACEP.demo; import com.volcengine.model.acep.*; import com.volcengine.service.acep.ACEPService; public class ListImageResourceDemo { public static void main(String[] args) { // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY ACEPService service = ACEPService.getInstance(); service.setAccessKey(System.getenv("VOLC_ACCESSKEY")); service.setSecretKey(System.getenv("VOLC_SECRETKEY")); ListImageResourceQuery query = new ListImageResourceQuery(); // 业务 ID,可在「云手机控制台-业务管理-业务详情」中获取 query.setProductId("1749281594201xxxxxx"); // 指定需要查询的镜像 ID 列表。多个镜像 ID 使用英文 "," 分隔。 // 该参数置空时,系统将默认返回业务下所有镜像 ID 的分布情况。 query.setImageIdList("img-xxxxx1,img-xxxxx2"); // 查询结果的起始位置,用于指定从哪一条记录开始返回数据。例如,若 Offset 为 10,则表示从第 11 条记录开始。默认值为 0。 // note: // 可与 Count 配合使用。假设当前数据集的记录总数为 200 条,如需查询第 101~150 条数据,需设置 Offset 为 100,Count 为 50。 query.setOffset((long) 0); // 单次查询返回的最大记录数,用于控制每次查询返回的数据量。例如,若 Count 为 100,则表示在查询数据时,系统将每次返回 100 条记录。 // note: // 可与 Offset 配合使用。假设当前数据集的记录总数为 200 条,如需查询第 101~150 条数据,需设置 Offset 为 100,Count 为 50。 query.setCount((long) 10); try { ListImageResourceRes resp = service.listImageResource(query); System.out.println(resp); } catch (Exception e) { e.printStackTrace(); } } }
您可以调用 GetImagePreheating 接口查询镜像预热信息 GetImagePreheating。详细的参数说明可参见 GetImagePreheating 接口文档。
接口调用示例如下所示。
package com.volcengine.ACEP.demo; import com.volcengine.model.acep.*; import com.volcengine.service.acep.ACEPService; public class GetImagePreheatingDemo { public static void main(String[] args) { // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY ACEPService service = ACEPService.getInstance(); service.setAccessKey(System.getenv("VOLC_ACCESSKEY")); service.setSecretKey(System.getenv("VOLC_SECRETKEY")); GetImagePreheatingQuery query = new GetImagePreheatingQuery(); // 业务 ID,可在「云手机控制台-业务管理-业务详情」中获取 query.setProductId("1749281594201xxxxxx"); // 指定需要查询的镜像 ID 列表。多个镜像 ID 使用英文 "," 分隔。列表最大长度为 100。 query.setImageIdList("img-xxxxx1,img-xxxxx2"); // 机房 ID。用于指定希望查询的镜像所在的特定机房。若该参数置空,系统将默认返回所有机房中的指定镜像的预热数据。 query.setDcId("gdsz-ctcucm-01-xxxxx"); try { GetImagePreheatingRes resp = service.getImagePreheating(query); System.out.println(resp); } catch (Exception e) { e.printStackTrace(); } } }
您可以调用 CreateImageOneStep 接口镜像内置应用 CreateImageOneStep。详细的参数说明可参见 CreateImageOneStep 接口文档。
接口调用示例如下所示。
package com.volcengine.ACEP.demo; import com.volcengine.model.acep.*; import com.volcengine.service.acep.ACEPService; public class CreateImageOneStepDemo { public static void main(String[] args) { // 强烈建议不要把 VOLC_ACCESSKEY 和 VOLC_SECRETKEY 保存到工程代码里,否则可能导致 AccessKey 泄露,威胁您账号下所有资源的安全。 // 本示例通过从环境变量中读取 VOLC_ACCESSKEY 和 VOLC_SECRETKEY,来实现 API 访问的身份验证。运行代码示例前,请配置环境变量 VOLC_ACCESSKEY 和 VOLC_SECRETKEY ACEPService service = ACEPService.getInstance(); service.setAccessKey(System.getenv("VOLC_ACCESSKEY")); service.setSecretKey(System.getenv("VOLC_SECRETKEY")); CreateImageOneStepBody body = new CreateImageOneStepBody(); // 云手机业务ID,可在「云手机控制台-业务管理-业务详情」中获取。 body.setProductId("1591495366954xxxxxx"); // 镜像 ID,作为构建自定义镜像的基线或基准镜像。 body.setImageId("test_image"); // 镜像名称,由用户自定义,用于业务标识。 // 支持英文、中文字符、数字和下划线,需以英文或中文开头,长度不超过 128 个字符。 // 如不指定,则使用默认名称,格式为 “公共镜像 ID+AOSP 镜像版本+账号 ID+自定义镜像”。 body.setImageName("测试镜像"); // 镜像描述信息,由用户按需添加镜像备注说明,便于业务识别。 body.setImageAnnotation("测试镜像"); // 需要内置的应用或文件的下载地址;内置的文件需按照固定格式提供整体压缩包文件,文件名需为 file.zip。详请参考[预置应用或文件上传说明](https://www.volcengine.com/docs/6394/1181814#%E9%A2%84%E7%BD%AE%E5%BA%94%E7%94%A8%E6%88%96%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E8%AF%B4%E6%98%8E)。 body.setFileUrl("http://file.bytetos.com/cloudphone/file.zip"); try { CreateImageOneStepRes resp = service.createImageOneStep(body); System.out.println(resp); } catch (Exception e) { e.printStackTrace(); } } }