You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Go SDK获取Google Artifact Registry中Docker镜像的清单

获取Google Artifact Registry中Docker镜像的清单文件

核心关联逻辑

*artifactregistrypb.DockerImage 对象的 name 字段是关联清单文件的关键标识,你可以基于它构建过滤条件,通过 ListFiles 方法匹配到对应镜像的清单文件。

具体实现代码

在你的 do 函数中添加以下逻辑:

import (
    // 需额外引入iterator包
    "google.golang.org/api/iterator"
    "fmt"
    "log"
)

// ... 原有代码 ...

// 构建ListFiles请求,绑定目标镜像并筛选清单文件
req := &artifactregistrypb.ListFilesRequest{
    Parent: repoPath,
    Filter: fmt.Sprintf("docker_image=\"%s\" AND name:*.manifest", dockerImg.GetName()),
}

// 遍历获取清单文件
it := client.ListFiles(ctx, req)
for {
    file, err := it.Next()
    if err == iterator.Done {
        break
    }
    if err != nil {
        log.Fatal(err)
    }

    // 获取清单文件的下载URL
    manifestDownloadUrl := file.GetDownloadUrl()
    // 若需要读取清单内容,可直接通过该URL发起HTTP GET请求
    // resp, err := http.Get(manifestDownloadUrl)
    // 后续处理响应内容...

    fmt.Printf("镜像清单下载地址:%s\n", manifestDownloadUrl)
}

关键说明

  • 过滤规则中,docker_image=\"%s\" 用于精准绑定到目标Docker镜像,name:*.manifest 用于筛选出清单类型的文件
  • 文件对象的 GetDownloadUrl() 方法可以直接获取到类似AWS ECR GetDownloadUrlForLayer 提供的下载地址,通过该URL即可获取完整的清单数据

内容的提问来源于stack exchange,提问作者Avishay28

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 01:37:13