更新时间:2025-09-26 GMT+08:00
分享

查询仓库镜像列表

功能介绍

查询仓库镜像列表

调用方法

请参见如何调用API

URI

GET /v5/{project_id}/image/registries/images

表1 路径参数

参数

是否必选

参数类型

描述

project_id

String

参数解释:

项目ID,用于明确项目归属,配置后可通过该ID查询项目下资产。获取方式请参见获取项目ID

约束限制:

不涉及

取值范围:

字符长度1-256位

默认取值:

不涉及

表2 Query参数

参数

是否必选

参数类型

描述

enterprise_project_id

String

参数解释:

企业项目ID,用于过滤不同企业项目下的资产。获取方式请参见获取企业项目ID

如需查询所有企业项目下的资产请传参“all_granted_eps”。

约束限制:

开通企业项目功能后才需要配置企业项目ID参数。

取值范围:

字符长度1-256位

默认取值:

0,表示默认企业项目(default)。

namespace

String

参数解释:

组织名称

约束限制:

不涉及

取值范围:

字符长度1-128位。

默认取值:

不涉及

image_name

String

参数解释:

镜像名称

取值范围:

字符长度1-128位

image_version

String

参数解释:

镜像版本

取值范围:

字符长度1-64位

registry_name

String

参数解释:

仓库名称

取值范围:

字符长度1-128位

offset

Integer

参数解释:

偏移量:指定返回记录的开始位置

约束限制:

不涉及

取值范围:

最小值0,最大值2000000

默认取值:

默认为0

image_type

String

参数解释:

镜像类型

约束限制:

不涉及

取值范围:

  • private_image:SWR私有镜像。

  • shared_image:SWR共享镜像。

  • instance_image:SWR企业版镜像。

  • harbor:Harbor仓库镜像。

  • jfrog:Jfrog镜像。

默认取值:

不涉及

sort_key

String

参数解释:

可排序字段

约束限制:

不涉及

取值范围:

  • latest_scan_time:最近扫描时间。

默认取值:

不涉及

sort_dir

String

参数解释:

排序的顺序

约束限制:

不涉及

取值范围:

  • asc : 正序

  • desc : 倒序

默认取值:

正序排序

limit

Integer

参数解释:

每页显示个数

约束限制:

不涉及

取值范围:

取值1-200

默认取值:

10

latest_version

Boolean

仅关注最新版本镜像

image_size

Long

参数解释:

镜像大小

约束限制:

不涉及

取值范围:

取值0-2147483547

默认取值:

不涉及

scan_status

String

参数解释:

扫描状态

约束限制:

不涉及

取值范围:

  • unscan:未扫描。

  • success:扫描完成。

  • scanning:扫描中。

  • failed:扫描失败。

  • waiting_for_scan:等待扫描。

默认取值:

不涉及

start_latest_update_time

Long

参数解释:

创建时间开始日期,时间单位 毫秒(ms)

约束限制:

不涉及

取值范围:

取值0-9223372036854775807

默认取值:

不涉及

end_latest_update_time

Long

参数解释:

创建时间结束日期,时间单位 毫秒(ms)

约束限制:

不涉及

取值范围:

取值0-9223372036854775807

默认取值:

不涉及

start_latest_scan_time

Long

参数解释:

最近一次扫描完成时间开始日期,时间单位 毫秒(ms)

约束限制:

不涉及

取值范围:

取值0-9223372036854775807

默认取值:

不涉及

end_latest_scan_time

Long

参数解释:

最近一次扫描完成时间结束日期,时间单位 毫秒(ms)

约束限制:

不涉及

取值范围:

取值0-9223372036854775807

默认取值:

不涉及

start_latest_sync_time

Long

参数解释:

最近一次同步完成时间开始日期,时间单位 毫秒(ms)

约束限制:

不涉及

取值范围:

取值0-9223372036854775807

默认取值:

不涉及

end_latest_sync_time

Long

参数解释:

最近一次同步完成时间结束日期,时间单位 毫秒(ms)

约束限制:

不涉及

取值范围:

取值0-9223372036854775807

默认取值:

不涉及

has_malicious_file

Boolean

是否存在恶意文件

has_unsafe_setting

Boolean

是否存在基线检查风险

has_vul

Boolean

是否存在软件漏洞

risky

Boolean

有安全风险

instance_id

String

参数解释

企业仓库实例ID,SWR企业版可以使用该参数

约束限制

不涉及

取值范围

字符长度0-128位

默认取值

不涉及

instance_name

String

参数解释

企业镜像实例名称,SWR企业版可以使用该参数

约束限制

不涉及

取值范围

字符长度0-128位

默认取值

不涉及

is_multarch

Boolean

是否是多架构镜像

severity_level

String

参数解释:

镜像风险程度,在镜像扫描完成后展示

约束限制:

不涉及

取值范围:

  • Security:安全。

  • Low:低危。

  • Medium:中危。

  • High:高危。

默认取值:

不涉及

请求参数

表3 请求Header参数

参数

是否必选

参数类型

描述

X-Auth-Token

String

参数解释:

用户Token,包含了用户的身份、权限等信息,在调用API接口时,可通过Token进行身份认证。获取方式请参见获取用户Token

约束限制:

不涉及

取值范围:

字符长度1-32768位

默认取值:

不涉及

响应参数

状态码:200

表4 响应Body参数

参数

参数类型

描述

total_num

Integer

参数解释:

总数

取值范围:

0-2147483547

data_list

Array of RegistryImagesInfo objects

仓库镜像列表

表5 RegistryImagesInfo

参数

参数类型

描述

id

Long

参数解释:

id

取值范围:

最小值0,最大值9223372036854775807

namespace

String

参数解释:

组织名称

取值范围:

字符长度0-64位

image_name

String

参数解释:

镜像名称

取值范围:

字符长度0-128位

image_id

String

参数解释:

镜像id

取值范围:

字符长度0-64位

image_digest

String

参数解释:

镜像digest

取值范围:

字符长度0-128位

image_version

String

参数解释:

镜像版本

取值范围:

字符长度0-64位

image_type

String

参数解释:

镜像类型

取值范围:

  • private_image:SWR私有镜像。

  • shared_image:SWR共享镜像。

  • instance_image:SWR企业版镜像。

  • harbor:Harbor仓库镜像。

  • jfrog:Jfrog镜像。

registry_id

String

参数解释:

镜像仓id

取值范围:

字符长度1-64位

registry_name

String

参数解释:

镜像仓库名称

取值范围:

字符长度1-128位

registry_type

String

参数解释

镜像仓库类型

取值范围

  • SwrPrivate:swr私有。

  • SwrShared:swr共享。

  • SwrEnterprise:swr企业。

  • Harbor:harbor仓库。

  • Jfrog:jfrog仓库。

  • Other:其他仓库。

latest_version

Boolean

是否是最新版本

scan_status

String

参数解释

扫描状态

取值范围

  • unscan:未扫描。

  • success:扫描完成。

  • scanning:正在扫描。

  • failed:扫描失败。

  • download_failed:下载失败。

  • image_oversized:镜像超大。

  • waiting_for_scan:等待扫描。

scan_failed_desc

String

参数解释

扫描失败原因描述

取值范围

扫描失败原因code和描述对应关系如下

  • unknown_error:未知错误。

  • authentication_failed:认证失败。

  • download_failed:镜像下载失败。请向技术人员寻求帮助。

  • image_over_sized:镜像大小超限,不支持扫描。建议精简镜像。

  • get_detail_info_not_found:获取镜像详细信息失败,镜像仓中可能已经不存在此镜像。请重新同步最新镜像。

  • image_layer_over_sized:镜像层数超限,不支持扫描。建议精简镜像。

  • schema_v1_not_support:Schema V1镜像不支持扫描。建议升级到V2版本。

  • access_swr_failed:访问SWR服务出错。请向技术人员寻求帮助。

  • swr_authentication_error:缺少SWR授权。请参考镜像授权指导设置权限。

  • failed_to_scan_vulnerability:漏洞扫描失败。

  • failed_to_scan_file:文件扫描失败。

  • failed_to_scan_software:软件扫描失败。

  • failed_to_check_sensitive_information:敏感信息核查失败。

  • failed_to_check_baseline:基线检查失败。

  • failed_to_check_software_compliance:软件合规检查失败。

  • failed_to_query_basic_image_information:基础镜像信息查询失败。

  • failed_to_check_build_cmd:镜像构建指令扫描失败。

  • response_timed_out:响应超时。

  • database_error:数据库错误。

  • failed_to_send_the_scan_request:发送扫描请求失败。

scan_failed_code

String

参数解释

扫描失败原因code

取值范围

扫描失败原因code和描述对应关系如下

  • unknown_error:未知错误。

  • authentication_failed:认证失败。

  • download_failed:镜像下载失败。请向技术人员寻求帮助。

  • image_over_sized:镜像大小超限,不支持扫描。建议精简镜像。

  • get_detail_info_not_found:获取镜像详细信息失败,镜像仓中可能已经不存在此镜像。请重新同步最新镜像。

  • image_layer_over_sized:镜像层数超限,不支持扫描。建议精简镜像。

  • schema_v1_not_support:Schema V1镜像不支持扫描。建议升级到V2版本。

  • access_swr_failed:访问SWR服务出错。请向技术人员寻求帮助。

  • swr_authentication_error:缺少SWR授权。请参考镜像授权指导设置权限。

  • failed_to_scan_vulnerability:漏洞扫描失败。

  • failed_to_scan_file:文件扫描失败。

  • failed_to_scan_software:软件扫描失败。

  • failed_to_check_sensitive_information:敏感信息核查失败。

  • failed_to_check_baseline:基线检查失败。

  • failed_to_check_software_compliance:软件合规检查失败。

  • failed_to_query_basic_image_information:基础镜像信息查询失败。

  • failed_to_check_build_cmd:镜像构建指令扫描失败。

  • response_timed_out:响应超时。

  • database_error:数据库错误。

  • failed_to_send_the_scan_request:发送扫描请求失败。

image_size

Long

参数解释:

镜像大小

取值范围:

取值0-2147483547

latest_update_time

Long

参数解释:

镜像版本最后更新时间,时间单位 毫秒(ms)

取值范围:

取值0-9223372036854775807

latest_scan_time

Long

参数解释:

最近扫描时间,时间单位 毫秒(ms)

取值范围:

取值0-9223372036854775807

latest_sync_time

Long

参数解释:

最近同步时间,时间单位 毫秒(ms)

取值范围:

取值0-9223372036854775807

vul_num

Integer

参数解释:

漏洞个数

取值范围:

取值0-2147483647

unsafe_setting_num

Integer

参数解释:

基线扫描未通过数

取值范围:

取值0-2147483647

malicious_file_num

Integer

参数解释:

恶意文件数

取值范围:

取值0-2147483647

domain_name

String

参数解释:

拥有者(共享镜像参数)

取值范围:

字符长度0-128

shared_status

String

参数解释

共享镜像状态

取值范围

  • expired:已过期。

  • effective:有效。

scannable

Boolean

是否可扫描

is_multiple_arch

Boolean

是否是多架构镜像

instance_name

String

参数解释:

企业版镜像实例名称

取值范围:

字符长度0-128

instance_id

String

参数解释:

企业版镜像实例ID

取值范围:

字符长度0-64

instance_url

String

参数解释:

企业版镜像实例URL

取值范围:

字符长度0-256

severity_level

String

参数解释:

镜像风险程度,在镜像扫描完成后展示

取值范围:

  • Security:安全。

  • Low:低危。

  • Medium:中危。

  • High:高危。

association_images

Array of AssociateImagesInfo objects

多架构关联镜像信息

表6 AssociateImagesInfo

参数

参数类型

描述

id

Long

参数解释:

id

取值范围:

最小值0,最大值9223372036854775807

image_id

String

参数解释:

镜像id

取值范围:

字符长度0-64位

image_name

String

参数解释:

镜像名称

取值范围:

字符长度0-128位

image_version

String

参数解释:

镜像版本

取值范围:

字符长度0-64位

image_type

String

参数解释:

镜像类型

取值范围:

  • private_image:SWR私有镜像。

  • shared_image:SWR共享镜像。

  • instance_image:SWR企业版镜像。

  • harbor:Harbor仓库镜像。

  • jfrog:Jfrog镜像。

namespace

String

参数解释:

组织名称

取值范围:

字符长度0-64位

image_digest

String

参数解释:

镜像digest

取值范围:

字符长度0-128位

scan_status

String

参数解释

扫描状态

取值范围

  • unscan:未扫描。

  • success:扫描完成。

  • scanning:正在扫描。

  • failed:扫描失败。

  • download_failed:下载失败。

  • image_oversized:镜像超大。

  • waiting_for_scan:等待扫描。

vul_num

Integer

参数解释:

漏洞个数

取值范围:

取值0-2147483647

unsafe_setting_num

Integer

参数解释:

基线扫描未通过数

取值范围:

取值0-2147483647

malicious_file_num

Integer

参数解释:

恶意文件数

取值范围:

取值0-2147483647

请求示例

响应示例

状态码:200

请求已成功

{
  "total_num" : 3,
  "data_list" : [ {
    "id" : "111(私有镜像举例)",
    "image_digest" : "sha256:cebcdacde18091448a5040dc55bb1a9f6540b093db8XXXXXX",
    "image_id" : "cebcdacde18091448a5040dc55bb1a9f6540b093db8XXXXXX",
    "image_name" : "centos7",
    "image_size" : "1000 单位(Bytes)",
    "image_type" : "private_image",
    "image_version" : "common",
    "latest_scan_time" : 1691748641788,
    "latest_update_time" : 1687664346000,
    "latest_version" : false,
    "malicious_file_num" : 0,
    "namespace" : "aaa",
    "scan_status" : "success",
    "scannable" : true,
    "unsafe_setting_num" : 1,
    "vul_num" : 111,
    "instance_name" : "",
    "instance_id" : "",
    "instance_url" : ""
  }, {
    "id" : "222(共享镜像举例)",
    "domain_name" : "scc_cgs_XXX",
    "shared_status" : "effective",
    "image_digest" : "sha256:cebcdacde18091448a5040dc55bb1a9f6540b093db8XXXXXX",
    "image_id" : "cebcdacde18091448a5040dc55bb1a9f6540b093db8XXXXXX",
    "image_name" : "mysql",
    "image_size" : "1000 单位(Bytes)",
    "image_type" : "shared_image",
    "image_version" : "5.5",
    "latest_scan_time" : 1691748641788,
    "latest_update_time" : 1687664346000,
    "latest_version" : false,
    "malicious_file_num" : 0,
    "namespace" : "aaa",
    "scan_status" : "failed",
    "scan_failed_desc" : "认证失败",
    "scan_failed_code" : "authentication_failed",
    "scannable" : true,
    "unsafe_setting_num" : 0,
    "vul_num" : 0,
    "instance_name" : "",
    "instance_id" : "",
    "instance_url" : ""
  }, {
    "id" : "333(企业镜像举例)",
    "domain_name" : "scc_cgs_XXX",
    "shared_status" : "effective",
    "image_digest" : "sha256:cebcdacde18091448a5040dc55bb1a9f6540b093db8XXXXXX",
    "image_id" : "cebcdacde18091448a5040dc55bb1a9f6540b093db8XXXXXX",
    "image_name" : "mysql",
    "image_size" : "1000 单位(Bytes)",
    "image_type" : "shared_image",
    "image_version" : "5.5",
    "latest_scan_time" : 1691748641788,
    "latest_update_time" : 1687664346000,
    "latest_version" : false,
    "malicious_file_num" : 0,
    "namespace" : "aaa",
    "scan_status" : "success",
    "scannable" : true,
    "unsafe_setting_num" : 1,
    "vul_num" : 111,
    "instance_name" : "企业实例名称",
    "instance_id" : "",
    "instance_url" : ""
  } ]
}

SDK代码示例

SDK代码示例如下。

 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
package com.huaweicloud.sdk.test;

import com.huaweicloud.sdk.core.auth.ICredential;
import com.huaweicloud.sdk.core.auth.BasicCredentials;
import com.huaweicloud.sdk.core.exception.ConnectionException;
import com.huaweicloud.sdk.core.exception.RequestTimeoutException;
import com.huaweicloud.sdk.core.exception.ServiceResponseException;
import com.huaweicloud.sdk.hss.v5.region.HssRegion;
import com.huaweicloud.sdk.hss.v5.*;
import com.huaweicloud.sdk.hss.v5.model.*;


public class ListRegistryImagesSolution {

    public static void main(String[] args) {
        // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
        // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
        String ak = System.getenv("CLOUD_SDK_AK");
        String sk = System.getenv("CLOUD_SDK_SK");
        String projectId = "{project_id}";

        ICredential auth = new BasicCredentials()
                .withProjectId(projectId)
                .withAk(ak)
                .withSk(sk);

        HssClient client = HssClient.newBuilder()
                .withCredential(auth)
                .withRegion(HssRegion.valueOf("<YOUR REGION>"))
                .build();
        ListRegistryImagesRequest request = new ListRegistryImagesRequest();
        try {
            ListRegistryImagesResponse response = client.listRegistryImages(request);
            System.out.println(response.toString());
        } catch (ConnectionException e) {
            e.printStackTrace();
        } catch (RequestTimeoutException e) {
            e.printStackTrace();
        } catch (ServiceResponseException e) {
            e.printStackTrace();
            System.out.println(e.getHttpStatusCode());
            System.out.println(e.getRequestId());
            System.out.println(e.getErrorCode());
            System.out.println(e.getErrorMsg());
        }
    }
}
 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
# coding: utf-8

import os
from huaweicloudsdkcore.auth.credentials import BasicCredentials
from huaweicloudsdkhss.v5.region.hss_region import HssRegion
from huaweicloudsdkcore.exceptions import exceptions
from huaweicloudsdkhss.v5 import *

if __name__ == "__main__":
    # The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    # In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak = os.environ["CLOUD_SDK_AK"]
    sk = os.environ["CLOUD_SDK_SK"]
    projectId = "{project_id}"

    credentials = BasicCredentials(ak, sk, projectId)

    client = HssClient.new_builder() \
        .with_credentials(credentials) \
        .with_region(HssRegion.value_of("<YOUR REGION>")) \
        .build()

    try:
        request = ListRegistryImagesRequest()
        response = client.list_registry_images(request)
        print(response)
    except exceptions.ClientRequestException as e:
        print(e.status_code)
        print(e.request_id)
        print(e.error_code)
        print(e.error_msg)
 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
package main

import (
	"fmt"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    hss "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5"
	"github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5/model"
    region "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/hss/v5/region"
)

func main() {
    // The AK and SK used for authentication are hard-coded or stored in plaintext, which has great security risks. It is recommended that the AK and SK be stored in ciphertext in configuration files or environment variables and decrypted during use to ensure security.
    // In this example, AK and SK are stored in environment variables for authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK in the local environment
    ak := os.Getenv("CLOUD_SDK_AK")
    sk := os.Getenv("CLOUD_SDK_SK")
    projectId := "{project_id}"

    auth := basic.NewCredentialsBuilder().
        WithAk(ak).
        WithSk(sk).
        WithProjectId(projectId).
        Build()

    client := hss.NewHssClient(
        hss.HssClientBuilder().
            WithRegion(region.ValueOf("<YOUR REGION>")).
            WithCredential(auth).
            Build())

    request := &model.ListRegistryImagesRequest{}
	response, err := client.ListRegistryImages(request)
	if err == nil {
        fmt.Printf("%+v\n", response)
    } else {
        fmt.Println(err)
    }
}

更多编程语言的SDK代码示例,请参见API Explorer的代码示例页签,可生成自动对应的SDK代码示例。

状态码

状态码

描述

200

请求已成功

错误码

请参见错误码

相关文档