云服务器内容精选

  • 操作场景 如果您的业务数据同时保存在数据盘和系统盘中,要想实现业务数据跨账号迁移,需要用到 镜像服务 的创建整机镜像、共享镜像等功能。本节操作以Windows操作系统为例,为您详细介绍在同一区域内,跨账号迁移业务数据(包括系统盘和数据盘数据)的操作流程。 只有通过云备份,或云服务器(未通过旧版 CS BS服务生成备份)创建的整机镜像,才支持共享。 不允许共享市场镜像、源镜像为市场镜像的私有镜像、加密镜像、已冻结的镜像以及创建中的镜像。
  • 请求示例 批量添加镜像标签,其中,标签键为“key1”对应的值为“value1”、标签键为“key2”对应的值为“value2”。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 POST https://{Endpoint}/v2/fd73a4a14a4a4dfb9771a8475e5198ea/images/67e17426-359e-49fb-aa12-0bd1756ec240/tags/action { "tags": [{ "value": "value1", "key": "key1" }, { "value": "value2", "key": "key2" }, { "value": "", "key": "key3" }], "action": "create" } 批量删除镜像标签,其中,标签键为“key1”对应的值为“value1”、标签键为“key2”对应的值为“value2”。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 POST https://{Endpoint}/v2/fd73a4a14a4a4dfb9771a8475e5198ea/images/67e17426-359e-49fb-aa12-0bd1756ec240/tags/action { "tags": [{ "value": "value1", "key": "key1" }, { "value": "value2", "key": "key2" }, { "value": "", "key": "key3" }], "action": "delete" }
  • 约束与限制 每个标签由键值对组成,标签的key的长度不超过36个字符,value的长度不超过43个字符。key不能为空或者空白字符串,value不能为空,但可以是空白字符串。 单个镜像最多添加10个标签。 请求体中的多个标签的key不允许重复。 此接口为幂等接口: 创建时,如果创建的标签已经存在,即key相同而value不同,则更新对应标签;如果创建的标签已经存在,key/value均相同,则不进行重复添加,视为添加成功。 删除时,如果指定的标签不存在,则默认视为删除成功。 批量删除时对key、value的限制: 删除时,对标签的key、value不做字符集范围校验,key不允许为空或空白字符串;value为可选,且不对value做校验。如果要删除的标签不存在,视为删除成功,不报错。删除时,对标签的key、value做长度校验,标签的key不超过127,value不超过255。
  • 请求消息 请求参数 参数 是否必选 参数类型 描述 tags 是 Array of objects 要操作的标签列表。详情请参见表2。 action 是 String 要进行的标签操作,区分大小写。支持create、delete,分别用于批量地创建/更新、删除标签。 表2 tags数据结构说明 参数 是否必选 参数类型 描述 key 是 String 标签的键,键不能为空。 value 是 String 标签的值。
  • API概览 镜像服务所提供的接口分为IMS接口与OpenStack原生接口。推荐您使用IMS接口。 通过配合使用镜像服务提供的接口和OpenStack原生接口,您可以完整地使用镜像服务的所有功能。例如制作私有镜像,可以使用OpenStack原生接口,也可以使用IMS接口进行操作。 表1 接口说明 类型 子类型 说明 IMS接口 镜像 可以实现镜像的制作、镜像列表查询、镜像导出等操作。 镜像标签 对私有镜像进行自定义标记。通过镜像标签,用户可以自由地对私有镜像分类管理。 镜像共享 用户可以将私有镜像共享给其他用户使用。通过镜像共享的接口完成镜像共享的相关操作。 镜像复制 通过Region内复制镜像实现加密镜像与非加密镜像的转换;通过跨Region复制镜像实现镜像在两个区域间复制,帮助用户实现区域间的业务迁移。 镜像配额 查询租户在当前Region的私有镜像的配额数量。 镜像任务 查询异步任务接口执行情况以及异步任务进度。 OpenStack原生接口 镜像 可以实现镜像的制作、镜像列表/详情查询、镜像导出等操作。 镜像标签 对私有镜像进行自定义标记。通过镜像标签,用户可以自由地对私有镜像分类管理。 镜像视图 镜像视图是提供给用户查询镜像属性详情的接口,比如属性的取值类型、用途等。通过镜像视图,用户可以从宏观上对镜像的基本情况进行了解。 镜像共享 用户可以将私有镜像共享给其他用户使用。通过镜像共享的接口完成镜像共享的相关操作。 查询API版本信息 查询镜像服务当前所用的API版本。
  • 响应消息 响应参数 参数 参数类型 描述 images Array of objects 镜像详情。 具体请参见表2。 表2 images字段说明 参数 参数类型 描述 file String 镜像文件下载和上传链接。 owner String 镜像属于哪个租户。 id String 镜像ID。 size Long 目前暂时不使用。 self String 镜像链接信息。 schema String 镜像视图。 status String 镜像状态。取值如下: queued:表示镜像元数据已经创建成功,等待上传镜像文件。 saving:表示镜像正在上传文件到后端存储。 deleted:表示镜像已经删除。 killed:表示镜像上传错误。 active:表示镜像可以正常使用。 tags Array of strings 镜像标签列表,提供用户可以自定义管理私有镜像的能力。用户可以通过镜像标签接口为每个镜像增加不同的标签,在查询接口中可以根据标签进行过滤。 visibility String 是否被其他租户可见,取值如下: private:表示私有镜像。 public:表示公共镜像。 shared:表示共享镜像。 name String 镜像名称。name参数说明请参考镜像属性。 checksum String 目前暂时不使用。 protected Boolean 是否是受保护的,受保护的镜像不允许删除。取值为true或false。 container_format String 容器类型。 min_ram Integer 镜像运行最小内存,单位为MB。取值参考云服务器规格限制,一般设置为0。 云服务器的规格限制,请参见规格清单。 max_ram String 镜像支持的最大内存,单位为MB。取值可以参考云服务器规格限制,一般不设置。 云服务器的规格限制,请参见规格清单。 updated_at String 更新时间。格式为UTC时间。 __os_bit String 操作系统位数,一般取值为“32”或者“64”。 __os_version String 操作系统具体版本。 __description String 镜像描述信息。_description参数说明请参考镜像属性。 disk_format String 镜像格式,目前支持zvhd2、vhd、zvhd、raw、qcow2、iso。非iso格式时默认值是zvhd2。 __isregistered String 是否是注册过的镜像,取值为“true”或者“false”。 __platform String 镜像平台分类,取值为Windows、Ubuntu、Red Hat、SUSE、CentOS、Debian、OpenSUSE、Oracle Linux、Fedora、Other、CoreOS和EulerOS。 __os_type String 操作系统类型,目前取值Linux、Windows、Other。 min_disk Integer 镜像运行需要的最小磁盘,单位为GB 。linux操作系统取值为10~1024GB,Windows操作系统取值为20~1024GB。 virtual_env_type String 镜像使用环境类型:FusionCompute、Ironic、DataImage、IsoImage。 如果是云服务器镜像,则取值为FusionCompute。 如果是数据盘镜像,则取值是DataImage。 如果是裸金属服务器镜像,则取值是Ironic。 如果是ISO镜像,则取值是IsoImage。 __image_source_type String 镜像后端存储类型,目前支持uds。 __imagetype String 镜像类型,目前支持以下类型: 公共镜像:gold 私有镜像:private 共享镜像:shared 市场镜像:market created_at String 创建时间。格式为UTC时间。 virtual_size Integer 目前暂时不使用。 __originalimagename String 父镜像ID。 公共镜像或通过文件创建的私有镜像,取值为空。 __backup_id String 备份ID。如果是备份创建的镜像,则填写为备份的ID,否则为空。 __productcode String 市场镜像的产品ID。 __image_size String 镜像文件的大小,单位为字节。 __data_origin String 镜像来源。 公共镜像为空。 __lazyloading String 镜像是否支持延迟加载。取值为true、false、True或False。 active_at String 镜像状态变为正常的时间。 __image_displayname String 对外展示名称。 __os_feature_list String 镜像附加属性。该属性采用JSON格式来标识镜像支持的高级特性清单。 __support_kvm String 如果镜像支持KVM,取值为true,否则无需增加该属性。 __support_xen String 如果镜像支持XEN,取值为true,否则无需增加该属性。 __support_largememory String 表示该镜像支持超大内存。如果镜像支持超大内存,取值为true,否则无需增加该属性。 __support_diskintensive String 表示该镜像支持密集存储。如果镜像支持密集存储性能,则值为true,否则无需增加该属性。 __support_highperformance String 表示该镜像支持高计算性能。如果镜像支持高计算性能,则值为true,否则无需增加该属性。 __support_xen_gpu_type String 表示该镜像是支持XEN虚拟化平台下的GPU优化类型,取值参考表2。如果不支持XEN虚拟化下GPU类型,无需添加该属性。该属性与“__support_xen”和“__support_kvm”属性不共存。 __support_kvm_gpu_type String 表示该镜像是支持KVM虚拟化平台下的GPU类型,取值参考表3。 如果不支持KVM虚拟化下GPU类型,无需添加该属性。该属性与“__support_xen”和“__support_kvm”属性不共存。 __support_xen_hana String 如果镜像支持XEN虚拟化下HANA类型,取值为true。否则,无需添加该属性。 该属性与“__support_xen”和“__support_kvm”属性不共存。 __support_kvm_infiniband String 如果镜像支持KVM虚拟化下Infiniband网卡类型,取值为true。否则,无需添加该属性。 该属性与“__support_xen”属性不共存。 __system_support_market Boolean 表示当前镜像是否支持发布为市场镜像。 true:支持 false:不支持 __is_offshelved String 表示当前市场镜像是否下架。 true:已下架 false:未下架 enterprise_project_id String 表示当前镜像所属的企业项目。 取值为0或无该值,表示属于default企业项目。 取值为UUID,表示属于该UUID对应的企业项目。 关于企业项目特性的详细信息,请参考“企业中心总览”。 __root_origin String 表示当前镜像来源是从外部导入。取值:file。 __sequence_num String 表示当前镜像对应云服务器的系统盘插槽位置。 取值样例:0。 __support_fc_inject String 表示当前镜像支持Cloud-Init密码/密钥注入方式。 如果取值为“true”,表示该镜像不支持Cloud-Init注入密码/密钥,其他取值时表示支持Cloud-Init注入密钥/密码。 说明: 该特性参数只对ECS系统盘镜像生效,其他类型镜像不生效。 hw_firmware_type String 云服务器的启动方式。目前支持: bios:表示bios引导启动。 uefi:表示uefi引导启动。 hw_vif_multiqueue_enabled String 镜像是否支持网卡多队列。取值为“true”或者“false”。 __support_arm String 是否是ARM架构类型的镜像。取值为“true”或者“false”。 __support_agent_list String 镜像是否支持主机安全或主机监控。 hss:主机安全 ces:主机监控 取值样例: "__support_agent_list": "hss,ces" 说明: 如果查询结果无此字段,表示镜像不支持主机安全或主机监控。 __system__cmkid String 加密镜像所使用的密钥ID。 __account_code String 收费镜像标识。 __support_amd String 是否是AMD架构类型的镜像。取值为“true”或者“false”。 响应样例 STATUS CODE 200 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 { "images": [ { "schema": "/v2/schemas/image", "min_disk": 100, "created_at": "2018-09-06T14:03:27Z", "__image_source_type": "uds", "container_format": "bare", "file": "/v2/images/bc6bed6e-ba3a-4447-afcc-449174a3eb52/file", "updated_at": "2018-09-06T15:17:33Z", "protected": true, "checksum": "d41d8cd98f00b204e9800998ecf8427e", "id": "bc6bed6e-ba3a-4447-afcc-449174a3eb52", "__isregistered": "true", "min_ram": 2048, "__lazyloading": "true", "owner": "1bed856811654c1cb661a6ca845ebc77", "__os_type": "Linux", "__imagetype": "gold", "visibility": "public", "virtual_env_type": "FusionCompute", "tags": [], "__platform": "CentOS", "size": 0, "__os_bit": "64", "__os_version": "CentOS 7.3 64bit", "name": "CentOS 7.3 64bit vivado", "self": "/v2/images/bc6bed6e-ba3a-4447-afcc-449174a3eb52", "disk_format": "zvhd2", "virtual_size": null, "hw_firmware_type": "bios", "status": "active", "__support_fc_inject":"true" }, { "schema": "/v2/schemas/image", "min_disk": 100, "created_at": "2018-09-06T14:03:05Z", "__image_source_type": "uds", "container_format": "bare", "file": "/v2/images/0328c25e-c840-4496-81ac-c4e01b214b1f/file", "updated_at": "2018-09-25T14:27:40Z", "protected": true, "checksum": "d41d8cd98f00b204e9800998ecf8427e", "id": "0328c25e-c840-4496-81ac-c4e01b214b1f", "__isregistered": "true", "min_ram": 2048, "__lazyloading": "true", "owner": "1bed856811654c1cb661a6ca845ebc77", "__os_type": "Linux", "__imagetype": "gold", "visibility": "public", "virtual_env_type": "FusionCompute", "tags": [], "__platform": "CentOS", "size": 0, "__os_bit": "64", "__os_version": "CentOS 7.3 64bit", "name": "CentOS 7.3 64bit with sdx", "self": "/v2/images/0328c25e-c840-4496-81ac-c4e01b214b1f", "disk_format": "zvhd2", "virtual_size": null, "hw_firmware_type": "bios", "status": "active", "__support_fc_inject":"true" } ] }
  • URI GET /v2/cloudimages{?__isregistered,__imagetype,__whole_image,__system__cmkid,protected,visibility,owner,id,status,name,flavor_id,container_format,disk_format,min_ram,min_disk,__os_bit,__platform,marker,limit,sort_key,sort_dir,__os_type,tag,member_status,__support_kvm,__support_xen,__support_largememory,__support_diskintensive,__support_highperformance,__support_xen_gpu_type,__support_kvm_gpu_type,__support_xen_hana,__support_kvm_infiniband,virtual_env_type,enterprise_project_id,created_at,updated_at,architecture} 可以在URI后面用‘?’和‘&’添加不同的查询条件组合,请参考请求样例。 表1 查询参数 参数 是否必选 参数类型 描述 __isregistered 否 String 镜像是否可用,取值为true,扩展接口会默认为true,普通用户只能查询取值为true的镜像。 __imagetype 否 String 镜像类型,目前支持以下类型: 公共镜像:gold 私有镜像:private 共享镜像:shared 市场镜像:market 说明: 当前租户共享给其他租户的私有镜像或当前租户接受的共享镜像中,__imagetype均为shared,可用owner字段进行区分。当前租户接受的共享镜像可用member_status进行过滤查询。 __whole_image 否 Boolean 是否为整机镜像,取值为true/false。 __system__cmkid 否 String 加密镜像所使用的密钥ID。可以从镜像服务控制台获取,或者调用查询镜像详情(OpenStack原生)API查询。 protected 否 Boolean 镜像是否是受保护,取值为true/false,一般查询公共镜像时候取值为true,查询私有镜像可以不指定。 visibility 否 String 是否被其他租户可见,取值如下: public:公共镜像 private:私有镜像 shared:共享镜像 owner 否 String 镜像属于哪个租户。 id 否 String 镜像ID。 status 否 String 镜像状态。取值如下: queued:表示镜像元数据已经创建成功,等待上传镜像文件。 saving:表示镜像正在上传文件到后端存储。 deleted:表示镜像已经删除。 killed:表示镜像上传错误。 active:表示镜像可以正常使用。 name 否 String 镜像名称,匹配规则为精确匹配。name参数说明请参考镜像属性。 flavor_id 否 String 用于通过云服务器规格过滤出可用公共镜像,取值为规格ID。 约束: 仅支持通过单个规格进行过滤。 仅支持按照云服务器规格进行过滤,裸金属服务器暂不支持。 如果需要查看某裸金属服务器规格支持的公共镜像,可以使用“__support_s4l=true”标签。其中,s4l为裸金属服务器规格的board_type,若规格为“physical.s4.large”,则填入“s4l”。详细说明请参见“怎么确定裸金属服务器规格的board_type?”。调用示例请参考常用列表查询方法。 container_format 否 String 容器类型,取值为bare。 disk_format 否 String 镜像格式,目前支持zvhd2、vhd、zvhd、raw、qcow2、iso。非iso格式时默认值是zvhd2。 min_ram 否 Integer 镜像运行需要的最小内存,单位为MB。参数取值依据云服务器的规格限制,一般设置为0。 云服务器的规格限制,请参见规格清单。 min_disk 否 Integer 镜像运行需要的最小磁盘,单位为GB 。linux操作系统取值为10~1024GB,Windows操作系统取值为20~1024GB。 __os_bit 否 String 操作系统位数,一般取值为32或者64。 __platform 否 String 镜像平台分类,取值为Windows、Ubuntu、Red Hat、SUSE、CentOS、Debian、OpenSUSE、Oracle Linux、Fedora、Other、CoreOS、EulerOS和Huawei Cloud EulerOS等。 marker 否 String 用于分页,表示从哪个镜像开始查询,取值为镜像ID。 limit 否 Integer 用于分页,表示查询几条镜像记录,取值为整数,默认取值为500。 sort_key 否 String 用于排序,表示按照哪个字段排序。取值为镜像属性name、container_format、disk_format、status、id、size、created_at字段,默认为创建时间。 sort_dir 否 String 用于排序,表示升序还是降序,取值为asc和desc。与sort_key一起组合使用,默认为降序desc。 __os_type 否 String 镜像系统类型,取值如下: Linux Windows Other tag 否 String 标签,用户为镜像增加自定义标签后可以通过该参数过滤查询。 说明: 系统近期对标签功能进行了升级。如果之前添加的Tag为“Key.Value”的形式,则查询的时候需要使用“Key=Value”的格式来查询。例如:之前添加的tag为“a.b”,则升级后,查询时需使用“tag=a=b”。 member_status 否 String 成员状态。目前取值有accepted、rejected、pending。accepted表示已经接受共享的镜像,rejected表示已经拒绝了其他用户共享的镜像,pending表示需要确认的其他用户的共享镜像。需要在查询时,设置“visibility”参数为“shared”。 __support_kvm 否 String 如果镜像支持KVM,取值为true,否则无需增加该属性。 __support_xen 否 String 如果镜像支持XEN,取值为true,否则无需增加该属性。 __support_largememory 否 String 表示该镜像支持超大内存。如果镜像支持超大内存,取值为true,否则无需增加该属性。 镜像操作系统类型请参考“弹性云服务器类型与支持的操作系统版本”。 __support_diskintensive 否 String 表示该镜像支持密集存储。如果镜像支持密集存储性能,则值为true,否则无需增加该属性。 __support_highperformance 否 String 表示该镜像支持高计算性能。如果镜像支持高计算性能,则值为true,否则无需增加该属性。 __support_xen_gpu_type 否 String 表示该镜像是支持XEN虚拟化平台下的GPU优化类型,取值参考表2。如果不支持XEN虚拟化下GPU类型,无需添加该属性。该属性与“__support_xen”和“__support_kvm”属性不共存。 __support_kvm_gpu_type 否 String 表示该镜像是支持KVM虚拟化平台下的GPU类型,取值参考表3。如果不支持KVM虚拟化下GPU类型,无需添加该属性。该属性与“__support_xen”和“__support_kvm”属性不共存。 __support_xen_hana 否 String 如果镜像支持XEN虚拟化下HANA类型,取值为true。否则,无需添加该属性。 该属性与“__support_xen”和“__support_kvm”属性不共存。 __support_kvm_infiniband 否 String 如果镜像支持KVM虚拟化下Infiniband网卡类型,取值为true。否则,无需添加该属性。 该属性与“__support_xen”属性不共存。 virtual_env_type 否 String 镜像使用环境类型:FusionCompute、Ironic、DataImage、IsoImage。 如果是云服务器镜像(即系统盘镜像),则取值为FusionCompute。 如果是数据盘镜像,则取值是DataImage。 如果是裸金属服务器镜像,则取值是Ironic。 如果是ISO镜像,则取值是IsoImage。 enterprise_project_id 否 String 表示查询某个企业项目下的镜像。 取值为0,表示查询属于default企业项目下的镜像。 取值为UUID,表示查询属于该UUID对应的企业项目下的镜像。 取值为all_granted_eps,表示查询当前用户所有企业项目下的镜像。 关于企业项目ID的获取及企业项目特性的详细信息,请参考“企业中心总览”。 created_at 否 String 镜像创建时间。支持按照时间点过滤查询,取值格式为“操作符:UTC时间”。 其中操作符支持如下几种: gt:大于 gte:大于等于 lt:小于 lte:小于等于 eq:等于 neq:不等于 时间格式支持:yyyy-MM-ddThh:mm:ssZ或者yyyy-MM-dd hh:mm:ss 例如,查询创建时间在2018-10-28 10:00:00之前的镜像,可以通过如下条件过滤: created_at=lt:2018-10-28T10:00:00Z updated_at 否 String 镜像修改时间。支持按照时间点过滤查询,取值格式为“操作符:UTC时间”。 其中操作符支持如下几种: gt:大于 gte:大于等于 lt:小于 lte:小于等于 eq:等于 neq:不等于 时间格式支持:yyyy-MM-ddThh:mm:ssZ或者yyyy-MM-dd hh:mm:ss 例如,查询修改时间在2018-10-28 10:00:00之前的镜像,可以通过如下条件过滤: updated_at=lt:2018-10-28T10:00:00Z architecture 否 String 镜像架构类型。取值包括: x86 arm
  • 常用列表查询方法 公共镜像列表查询 GET /v2/cloudimages?__imagetype=gold&visibility=public&protected=true 私有镜像列表查询 GET /v2/cloudimages?owner={project_id} 可以使用的共享镜像列表 GET /v2/cloudimages?member_status=accepted&visibility=shared&__imagetype=shared 被拒绝的共享镜像列表 GET /v2/cloudimages?member_status=rejected&visibility=shared&__imagetype=shared 未接受的共享镜像列表 GET /v2/cloudimages?member_status=pending&visibility=shared&__imagetype=shared 裸金属服务器某规格支持的公共镜像列表 GET /v2/cloudimages?__imagetype=gold&__support_xxx=true&virtual_env_type=Ironic
  • 请求消息 请求参数 可以把name、container_format、disk_format、status、size_min、size_max、changes-since作为uri参数,过滤查询结果。 参数 是否必选 参数类型 描述 name 否 String 镜像名称。name参数说明请参考镜像属性。 container_format 否 String 镜像容器类型 disk_format 否 String 镜像文件格式 status 否 String 镜像状态 size_min 否 String 镜像不小于 size_max 否 String 镜像不大于 changes-since 否 String 镜像最后更新时间
  • 响应消息 响应参数 参数 参数类型 描述 status String 镜像状态 virtual_size Integer 镜像虚拟大小 name String 镜像名称。name参数说明请参考镜像属性。 deleted Boolean 镜像是否已删除 container_format String 镜像容器类型 created_at String 镜像创建时间 disk_format String 镜像文件类型 updated_at String 镜像更新时间 properties Object 镜像属性 owner String 镜像所属租户 protected Boolean 镜像是否受保护 min_ram Integer 运行镜像所需最小内存,单位MB checksum String 镜像校验和,上传镜像文件后存在 min_disk Integer 运行镜像所需最小磁盘,单位GB is_public Boolean 是否为公共镜像 deleted_at String 镜像删除时间 id String 镜像UUID size Integer 镜像大小,上传镜像文件后存在 响应样例 HTTP/1.1 200 OK 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 Content-Type: application/json; charset=UTF-8 Content-Length: 495 X-Openstack-Request-Id: req-68327dda-8078-41fe-b091-01a09ec073da Date: Mon, 23 May 2016 02:32:28 GMT { "images": [ { "status": "active", "deleted_at": null, "name": "cirros", "deleted": false, "container_format": "bare", "created_at": "2016-05-22T06:04:20.425843", "disk_format": "qcow2", "updated_at": "2016-05-22T06:04:22.719791", "min_disk": 0, "protected": false, "id": "3c3d1d01-b48a-4639-8a88-08be3b9b5d78", "min_ram": 0, "checksum": "64d7c1cd2b6f60c92c14662941cb7913", "owner": "23f4cb75768d4febb39542ef6fe169f3", "is_public": true, "virtual_size": null, "properties": { }, "size": 13167616 } ] }
  • 功能介绍 该接口用于上传用户本地的镜像文件到云平台。使用该接口上传镜像时,镜像文件大小需要小于2GB,超过2GB的镜像文件参考注册镜像进行操作。 了解更多关于使用外部文件创建镜像的相关内容,请参见“通过外部镜像文件创建Windows系统盘镜像”、“通过外部镜像文件创建Linux系统盘镜像”。 使用该接口上传镜像的具体步骤如下: 准备待上传的镜像,支持的镜像格式:QCOW2、VMDK、VHD、RAW、VHDX、QED、VDI、QCOW、ZVHD2和ZVHD。 使用创建镜像元数据(OpenStack原生)创建镜像元数据。调用成功后,保存该镜像的ID。 使用2得到的镜像ID,上传支持格式的镜像文件。
  • URI PUT /v2/images/{image_id}/file 参数说明请参见表1。 表1 参数说明 参数 是否必选 参数类型 描述 image_id 是 String 镜像ID。 image_id为用户调用创建镜像元数据接口所创建出来镜像的id,使用其他方式创建的镜像id会导致上传失败。 上传接口调用成功后,请根据镜像id查询镜像的状态。镜像状态变为active表示镜像上传成功。 AK/SK签名认证方式仅支持消息体大小在12MB以内,12MB以上的请求请使用Token认证。
  • 请求示例 上传本地镜像文件。 PUT https://{Endpoint}/v2/images/84ac7f2b-bf19-4efb-86a0-b5be8771b476/file 如果使用curl命令方式调用接口,样例参考如下: curl -i --insecure 'https://IP/v2/images/84ac7f2b-bf19-4efb-86a0-b5be8771b476/file' -X PUT -H "X-Auth-Token: $mytoken" -H "Content-Type:application/octet-stream" -T /mnt/userdisk/images/suse.zvhd
  • 响应消息 响应参数 参数 参数类型 描述 first String 查询首页的URL。 next String 查询下一页的URL。当查询镜像列表最后一页时,不存在next。 schema String 描述镜像列表模式的URL。 images Array of objects 资源类型。 具体请参见表2。 表2 images字段说明 参数 参数类型 描述 __backup_id String 备份ID。如果是备份创建的镜像,则填写为备份的ID,否则无此参数。 __data_origin String 镜像来源。公共镜像为空。 __description String 镜像描述信息。 __image_location String 镜像的存储位置。 __image_size String 镜像文件的大小,单位为字节。目前取值为大于0的字符串。 __image_source_type String 镜像后端存储类型,目前只支持uds。 __is_config_init String 是否完成了初始化配置。取值为“true”或“false”。 __isregistered String 镜像是否可用,取值为true,扩展接口会默认为true,普通用户只能查询取值为true的镜像。 __lazyloading String 镜像是否支持延迟加载。取值为true、false、True或False。 __originalimagename String 父镜像ID。公共镜像或通过文件创建的私有镜像,取值为空。 __imagetype String 镜像类型,目前支持以下类型: 公共镜像:gold 私有镜像:private 共享镜像:shared 市场镜像:market protected Boolean 镜像是否是受保护,查询公共镜像时候取值为true,查询私有镜像可以不指定。 virtual_env_type String 镜像使用的环境类型:FusionCompute、Ironic、DataImage、IsoImage。 如果是云服务器镜像(即系统盘镜像),则取值为FusionCompute。 如果是数据盘镜像,则取值是DataImage。 如果是裸金属服务器镜像,则取值是Ironic。 如果是ISO镜像,则取值是IsoImage。 virtual_size Integer 目前暂时不使用。 visibility String 是否被其他租户可见。取值如下: public:表示公共镜像。 private:表示私有镜像。 shared:表示共享镜像。 owner String 镜像属于哪个租户。 id String 镜像ID。 status String 镜像状态。取值如下: queued:表示镜像元数据已经创建成功,等待上传镜像文件。 saving:表示镜像正在上传文件到后端存储。 deleted:表示镜像已经删除。 killed:表示镜像上传错误。 active:表示镜像可以正常使用。 name String 镜像名称。name参数说明请参考镜像属性。 container_format String 容器类型。 disk_format String 镜像格式,目前支持zvhd2、vhd、zvhd、raw、qcow2、iso。非iso格式时默认值是zvhd2。 min_ram Integer 镜像运行需要的最小内存,单位为MB。参数取值依据云服务器的规格限制,一般为0。 云服务器的规格限制,请参见规格清单。 max_ram String 镜像支持的最大内存,单位为MB。 min_disk Integer 镜像运行需要的最小磁盘容量,单位为GB 。linux操作系统取值为10~1024GB,Windows操作系统取值为20~1024GB。 __os_bit String 操作系统位数,一般取值为32或者64。 __os_feature_list String 镜像附加属性。该属性采用JSON格式来标识镜像支持的高级特性清单。 __platform String 镜像平台分类,取值为Windows、Ubuntu、Red Hat、SUSE、CentOS、Debian、OpenSUSE、Oracle Linux、Fedora、Other、CoreOS和EulerOS。 schema String 镜像视图。 self String 镜像链接信息。 size Integer 目前暂时不使用。 __os_type String 镜像系统类型,取值为Linux、Windows、Other。 __os_version String 操作系统具体版本。 tags Array of strings 镜像标签列表,提供用户可以自定义管理私有镜像的能力。 __support_kvm String 如果镜像支持KVM,取值为true,否则无此属性。 __support_xen String 如果镜像支持XEN,取值为true,否则无此属性。 __support_largememory String 表示该镜像支持超大内存。如果镜像支持超大内存,取值为true,否则无此属性。 __support_diskintensive String 表示该镜像支持密集存储。如果镜像支持密集存储性能,则值为true,否则无此属性。 __support_highperformance String 表示该镜像支持高计算性能。如果镜像支持高计算性能,则值为true,否则无此属性。 __support_xen_gpu_type String 表示该镜像是支持XEN虚拟化平台下的GPU类型。支持GPU加速型实例的镜像操作系统类型请参考表2。如果不支持XEN虚拟化下GPU类型,无此属性。该属性与“__support_xen”和“__support_kvm”属性不共存。 __support_kvm_gpu_type String 表示该镜像是支持KVM虚拟化平台下的GPU类型,取值参考表3。如果不支持KVM虚拟化下GPU类型,无此属性。该属性与“__support_xen”和“__support_kvm”属性不共存。 __support_xen_hana String 如果镜像支持XEN虚拟化下HANA类型,取值为true。否则,无此属性。 该属性与“__support_xen”和“__support_kvm”属性不共存。 __support_kvm_infiniband String 如果镜像支持KVM虚拟化下Infiniband网卡类型,取值为true。否则,无此属性。 该属性与“__support_xen”属性不共存。 __productcode String 市场镜像的产品ID。 __root_origin String 表示当前镜像来源是从外部导入。取值样例:file。 __sequence_num String 表示当前镜像对应云服务器的系统盘插槽位置。 取值样例:0。 __support_fc_inject String 表示当前镜像支持Cloud-Init密码/密钥注入方式。 如果取值为“true”,表示该镜像不支持Cloud-Init注入密码/密钥,其他取值时表示支持Cloud-Init注入密钥/密码。 说明: 该特性参数只对ECS系统盘镜像生效,其他类型镜像不生效。 __is_offshelved String 表示当前市场镜像是否下架。 true:已下架 false:未下架 created_at String 创建时间。格式为UTC时间。 updated_at String 更新时间。格式为UTC时间。 active_at String 镜像状态变为正常的时间。 checksum String 目前暂时不使用。 hw_firmware_type String 云服务器的启动方式。目前支持: bios:表示bios引导启动。 uefi:表示uefi引导启动。 file String 镜像文件下载和上传链接。 enterprise_project_id String 表示当前镜像所属的企业项目。 取值为0或无该值,表示属于default企业项目。 取值为UUID,表示属于该UUID对应的企业项目。 _sys_enterprise_project_id String 表示当前镜像所属的企业项目。 取值为0或无该值,表示属于default企业项目。 取值为UUID,表示属于该UUID对应的企业项目。 __support_arm String 是否是ARM架构类型的镜像。取值为“true”或者“false”。 __support_agent_list String 镜像是否支持主机安全或主机监控。 hss:主机安全 ces:主机监控 取值样例: "__support_agent_list": "hss,ces" 说明: 如果查询结果无此字段,表示镜像不支持主机安全或主机监控。 __account_code string 收费镜像标识。 __support_amd String 是否是AMD架构类型的镜像。取值为“true”或者“false”。 __system__cmkid String 加密镜像所使用的密钥ID。 hw_vif_multiqueue_enabled String 镜像是否支持网卡多队列。取值为“true”或者“false”。 响应样例 STATUS CODE 200 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 { "schema": "/v2/schemas/images", "next": "/v2/images?__isregistered=true&marker=0328c25e-c840-4496-81ac-c4e01b214b1f&__imagetype=gold&limit=2", "images": [ { "schema": "/v2/schemas/image", "min_disk": 100, "created_at": "2018-09-06T14:03:27Z", "__image_source_type": "uds", "container_format": "bare", "file": "/v2/images/bc6bed6e-ba3a-4447-afcc-449174a3eb52/file", "updated_at": "2018-09-06T15:17:33Z", "protected": true, "checksum": "d41d8cd98f00b204e9800998ecf8427e", "id": "bc6bed6e-ba3a-4447-afcc-449174a3eb52", "__isregistered": "true", "min_ram": 2048, "__lazyloading": "true", "owner": "1bed856811654c1cb661a6ca845ebc77", "__os_type": "Linux", "__imagetype": "gold", "visibility": "public", "virtual_env_type": "FusionCompute", "tags": [], "__platform": "CentOS", "size": 0, "__os_bit": "64", "__os_version": "CentOS 7.3 64bit", "name": "CentOS 7.3 64bit vivado", "self": "/v2/images/bc6bed6e-ba3a-4447-afcc-449174a3eb52", "disk_format": "zvhd2", "virtual_size": null, "hw_firmware_type": "bios", "status": "active" }, { "schema": "/v2/schemas/image", "min_disk": 100, "created_at": "2018-09-06T14:03:05Z", "__image_source_type": "uds", "container_format": "bare", "file": "/v2/images/0328c25e-c840-4496-81ac-c4e01b214b1f/file", "updated_at": "2018-09-25T14:27:40Z", "protected": true, "checksum": "d41d8cd98f00b204e9800998ecf8427e", "id": "0328c25e-c840-4496-81ac-c4e01b214b1f", "__isregistered": "true", "min_ram": 2048, "__lazyloading": "true", "owner": "1bed856811654c1cb661a6ca845ebc77", "__os_type": "Linux", "__imagetype": "gold", "visibility": "public", "virtual_env_type": "FusionCompute", "tags": [], "__platform": "CentOS", "size": 0, "__os_bit": "64", "__os_version": "CentOS 7.3 64bit", "name": "CentOS 7.3 64bit with sdx", "self": "/v2/images/0328c25e-c840-4496-81ac-c4e01b214b1f", "disk_format": "zvhd2", "virtual_size": null, "hw_firmware_type": "bios", "status": "active" } ], "first": "/v2/images?__isregistered=true&__imagetype=gold&limit=2" }
  • 常用列表查询方法 公共镜像列表查询 GET /v2/images?__imagetype=gold&visibility=public&protected=true 私有镜像列表查询 GET /v2/images?owner={project_id} 可以使用的共享镜像列表 GET /v2/images?member_status=accepted&visibility=shared&__imagetype=shared 被拒绝的共享镜像列表 GET /v2/images?member_status=rejected&visibility=shared&__imagetype=shared 未接受的共享镜像列表 GET /v2/images?member_status=pending&visibility=shared&__imagetype=shared