镜像版本
更新时间:2026-04-27
镜像版本管理
前置代码
如下代码用于初始化 CCR Client,后续示例均基于该 ccrClient。
Go
1package main
2
3import (
4 "fmt"
5
6 "github.com/baidubce/bce-sdk-go/services/eccr"
7)
8
9func newClient() (*eccr.Client, error) {
10 ak := "<your-ak>"
11 sk := "<your-sk>"
12 endpoint := "ccr.bj.baidubce.com"
13 return eccr.NewClient(ak, sk, endpoint)
14}
15
16func main() {
17 ccrClient, err := newClient()
18 if err != nil {
19 fmt.Println("new eccr client failed:", err)
20 return
21 }
22
23 _ = ccrClient
24}
参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
ak |
是 | Access Key ID,占位符请替换为实际 AK。 |
sk |
是 | Secret Access Key,占位符请替换为实际 SK。 |
endpoint |
是 | CCR 服务接入地址,示例值为 ccr.bj.baidubce.com。 |
以下各节代码片段可直接替换上文 _ = ccrClient 所在位置,并复用已初始化的 ccrClient。文中的实例 ID、命名空间、仓库名称和标签名称均为示例值,请按实际资源替换。
ListTags
如下代码可以列举镜像版本:
Go
1instanceID := "ccr-xxxxxxxx"
2projectName := "demo-project"
3repositoryName := "nginx"
4
5args := &eccr.ListTagsArgs{
6 PageNo: 1,
7 PageSize: 10,
8 TagName: "",
9}
10
11resp, err := ccrClient.ListTags(instanceID, projectName, repositoryName, args)
12if err != nil {
13 fmt.Println("list tags failed:", err)
14 return
15}
16
17fmt.Println("total:", resp.Total)
18for _, tag := range resp.Items {
19 fmt.Printf("tag=%s digest=%s\n", tag.TagName, tag.Digest)
20}
参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
instanceID |
是 | CCR 企业版实例 ID,示例值为 ccr-xxxxxxxx。 |
projectName |
是 | 命名空间名称,示例值为 demo-project。 |
repositoryName |
是 | 仓库名称,示例值为 nginx。 |
args.PageNo |
否 | 分页页码,示例值为 1。 |
args.PageSize |
否 | 每页返回数量,示例值为 10。 |
args.TagName |
否 | 标签名称过滤条件。传空字符串时,返回仓库下全部版本。 |
返回值说明
| 字段 | 说明 |
|---|---|
resp.Total |
命中的镜像版本总数。 |
resp.Items |
当前页版本列表。 |
tag.TagName |
镜像版本标签名称。 |
tag.Digest |
镜像内容摘要。 |
GetTagDetail
如下代码可以查询指定镜像版本详情:
Go
1instanceID := "ccr-xxxxxxxx"
2projectName := "demo-project"
3repositoryName := "nginx"
4tagName := "1.25"
5
6resp, err := ccrClient.GetTagDetail(instanceID, projectName, repositoryName, tagName)
7if err != nil {
8 fmt.Println("get tag detail failed:", err)
9 return
10}
11
12fmt.Println("tag:", resp.TagName)
13fmt.Println("digest:", resp.Digest)
14fmt.Println("size:", resp.Size)
参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
instanceID |
是 | CCR 企业版实例 ID,示例值为 ccr-xxxxxxxx。 |
projectName |
是 | 命名空间名称,示例值为 demo-project。 |
repositoryName |
是 | 仓库名称,示例值为 nginx。 |
tagName |
是 | 待查询的镜像版本标签名称,示例值为 1.25。 |
返回值说明
| 字段 | 说明 |
|---|---|
resp.TagName |
镜像版本标签名称。 |
resp.Digest |
镜像内容摘要。 |
resp.Size |
镜像版本大小,单位为字节。 |
DeleteTag
如下代码可以删除单个镜像版本:
Go
1instanceID := "ccr-xxxxxxxx"
2projectName := "demo-project"
3repositoryName := "nginx"
4tagName := "tag-to-delete"
5
6err := ccrClient.DeleteTag(instanceID, projectName, repositoryName, tagName)
7if err != nil {
8 fmt.Println("delete tag failed:", err)
9 return
10}
11
12fmt.Println("delete tag success")
参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
instanceID |
是 | CCR 企业版实例 ID,示例值为 ccr-xxxxxxxx。 |
projectName |
是 | 命名空间名称,示例值为 demo-project。 |
repositoryName |
是 | 仓库名称,示例值为 nginx。 |
tagName |
是 | 待删除的镜像版本标签名称,示例值为 tag-to-delete。 |
返回值说明
删除成功时无响应参数,示例中以 err == nil 作为成功判断。
BatchDeleteTags
如下代码可以批量删除镜像版本:
Go
1instanceID := "ccr-xxxxxxxx"
2projectName := "demo-project"
3repositoryName := "nginx"
4
5args := &eccr.BatchDeleteTagsArgs{
6 Items: []string{"tag-a", "tag-b"},
7}
8
9err := ccrClient.BatchDeleteTags(instanceID, projectName, repositoryName, args)
10if err != nil {
11 fmt.Println("batch delete tags failed:", err)
12 return
13}
14
15fmt.Println("batch delete tags success")
参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
instanceID |
是 | CCR 企业版实例 ID,示例值为 ccr-xxxxxxxx。 |
projectName |
是 | 命名空间名称,示例值为 demo-project。 |
repositoryName |
是 | 仓库名称,示例值为 nginx。 |
args.Items |
是 | 待批量删除的镜像版本标签列表,示例值为 []string{"tag-a", "tag-b"}。 |
返回值说明
批量删除成功时无响应参数,示例中以 err == nil 作为成功判断。
评价此篇文章
