镜像
所有文档

          云服务器 BCC

          镜像

          创建自定义镜像

          支持通过实例创建和通过快照创建两种方式。参考以下代码可以创建一个自定义镜像:

          // 通过实例创建自定义镜像
          public static void createImageFromInstance(BccClient bccClient, String imageName, String instanceId) {
              CreateImageRequest createImageRequest = new CreateImageRequest();
              // 设置自定义镜像名称
              createImageRequest.setImageName(imageName);
              // 设置BCC实例id
              createImageRequest.setInstanceId(instanceId);
              System.out.println(bccClient.createImage(createImageRequest).getImageId());
          }
          
          // 通过实例创建自定义镜像,并且设置是否关联实例CDS磁盘
          public static void createImageFromInstanceWithRelateCds(BccClient bccClient, String imageName, String instanceId, boolean relateCds) {
              CreateImageRequest createImageRequest = new CreateImageRequest();
              // 设置自定义镜像名称
              createImageRequest.setImageName(imageName);
              // 设置BCC实例id
              createImageRequest.setInstanceId(instanceId);
              // 设置自定义镜像是否关联实例CDS磁盘,relateCds默认为false,为true时表示关联
              createImageRequest.setRelateCds(relateCds);
              System.out.println(bccClient.createImage(createImageRequest).getImageId());
          }
          
          // 通过快照创建自定义镜像
          public static void createImageFromSnapshot(BccClient bccClient, String imageName, String snapshotId) {
              CreateImageRequest createImageRequest = new CreateImageRequest();
              // 设置自定义镜像名称
              createImageRequest.setImageName(imageName);
              // 设置快照id
              createImageRequest.setSnapshotId(snapshotId);
              System.out.println(bccClient.createImage(createImageRequest).getImageId());
          }

          注意,创建自定义镜像,默认配额20个每账号。

          查询镜像列表

          使用以下代码可以查询有权限的镜像列表:

          public static void listImage(BccClient bccClient, String imageType) {
              ListImagesRequest listImagesRequest = new ListImagesRequest();
              // 设置分页标志
              listImagesRequest.setMarker(imageId);
              // 设置分页返回数据大小
              listImagesRequest.setMaxKeys(maxKey);
              // 设置筛选的镜像类型
              listImagesRequest.setImageType(imageType);
          
              ListImagesResponse listImagesResponse = bccClient.listImages();
          
              for (ImageModel imageModel : listImagesResponse.getImages()) {
                  System.out.println(imageModel.getId());
              }
          }

          具体的镜像类型可详细参考BCC API文档查询镜像列表

          查询镜像详情

          以下代码可以查询镜像详细信息:

          public static void getImage(BccClient bccClient, String imageId) {
              GetImageResponse getImageResponse = bccClient.getImage(imageId);
              System.out.println(getImageResponse.getImage().getName());
          }

          删除自定义镜像

          以下代码可以删除一个自定义镜像:

          public static void deleteImage(BccClient bccClient, String imageId) {
              bccClient.deleteImage(imageId);
          }

          跨区域复制自定义镜像

          用于用户跨区域复制自定义镜像,仅限自定义镜像,系统镜像和服务集成镜像不能复制

          regions如北京"bj",广州"gz",苏州"su",可多选:

          public static void remoteCopyImage(BccClient bccClient, String destImageId, String imageName, ArrayList<String> regions) {
          
              RemoteCopyImageRequest remoteCopyImageRequest = new RemoteCopyImageRequest();
          
              // 被复制镜像ID
          
              remoteCopyImageRequest.setImageId(destImageId);
          
              //设置镜像名称
          
              remoteCopyImageRequest.setname(imageName);
          
              // 目的regionId
          
              remoteCopyImageRequest.setDestRegion(regions);
          
              bccClient.remoteCopyImage(remoteCopyImageRequest);
          
          }

          取消跨区域复制自定义镜像

          用于取消跨区域复制自定义镜像,仅限自定义镜像,系统镜像和服务集成镜像不能复制:

          public static void cancelRemoteCopyImage(BccClient bccClient, String imageId) {
          
              // 待取消复制的镜像ID
          
              bccClient.cancelRemoteCopyImage(destImageId);
          
          }

          共享自定义镜像

          用于共享用户自己的指定的自定义镜像,仅限自定义镜像,系统镜像和服务集成镜像不能共享:

          public static void shareImage(BccClient bccClient, String accountId, String imageId) {
          
              ShareImageRequest shareImageRequest = new ShareImageRequest();
          
              // 待共享的用户ID
          
              shareImageRequest.setAccountId(accountId);
          
              // 待共享镜像ID
          
              shareImageRequest.setImageId(imageId);
          
              bccClient.shareImage(shareImageRequest);
          
          }

          取消共享自定义镜像

          用于取消共享用户自己的指定的自定义镜像:

          public static void unShareImage(BccClient bccClient, String accountId, String imageId) {
          
              UnShareImageRequest unShareImageRequest = new UnShareImageRequest();
          
              // 待取消共享用户ID
          
              unShareImageRequest.setAccountId(accountId);
          
              // 待取消共享镜像ID
          
              unShareImageRequest.setImageId(imageId);
          
              bccClient.unShareImage(unShareImageRequest);
          
          }

          查询镜像已共享用户列表

          用于查询镜像已共享的用户列表:

          public static void listSharedUser(BccClient bccClient, String ImageId) {
          
              ListSharedUserResponse listSharedUserResponse = bccClient.listSharedUser(ImageId);
          
          }

          根据实例短ID批量查询OS信息(新增)

          用于根据实例短id批量查询OS信息:

          public static void listOs(BccClient bccClient) {
          
              ListOsRequest listOsRequest = new ListOsRequest();
          
              List<String> ids = new ArrayList<String>();
          
              //设置需要查询的实例ID
          
              ids.add(instanceId);
          
              listOsRequest.setInstanceIds(ids);
          
              ListOsResponse listOsResponse = bccClient.listOs(listOsRequest);
          
          }
          上一篇
          磁盘
          下一篇
          快照