huaweicloud / huaweicloud-sdk-go-v3

Other
109 stars 52 forks source link

[BUG] 容器镜像仓库存在,如果仓库名称含有"/", 使用SDK修改仓库信息时404 #78

Closed idweball closed 5 months ago

idweball commented 5 months ago

错误信息

{"status_code":404,"request_id":"f16f57156f8a4f0b31ea75823127e9f1","error_code":"APIGW.0101","error_message":"The API does not exist or has not been published in the environment","encoded_authorization_message":""}

SDK以及go版本

module temp

go 1.21.1

require github.com/huaweicloud/huaweicloud-sdk-go-v3 v0.1.95

require (
        github.com/json-iterator/go v1.1.12 // indirect
        github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421 // indirect
        github.com/modern-go/reflect2 v1.0.2 // indirect
        github.com/tjfoc/gmsm v1.4.1 // indirect
        go.mongodb.org/mongo-driver v1.12.0 // indirect
        golang.org/x/crypto v0.18.0 // indirect
        gopkg.in/ini.v1 v1.67.0 // indirect
        gopkg.in/yaml.v3 v3.0.1 // indirect
)

仓库名称,以及控制截图

eIMScreenShot20240515144637240

使用代码

package main

import (
    "log"

    "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic"
    swr "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/swr/v2"
    swrModel "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/swr/v2/model"
    swrRegion "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/swr/v2/region"
)

func main() {
    ak := "xxxx"
    sk := "xxx"
    auth, err := basic.NewCredentialsBuilder().WithAk(ak).WithSk(sk).SafeBuild()
    if err != nil {
        log.Fatal(err)
    }

    region, err := swrRegion.SafeValueOf("cn-north-4")
    if err != nil {
        log.Fatal(err)
    }

    hcClient, err := swr.SwrClientBuilder().WithRegion(region).WithCredential(auth).SafeBuild()
    if err != nil {
        log.Fatal(err)
    }

    client := swr.NewSwrClient(hcClient)

    request := &swrModel.UpdateRepoRequest{
        ContentType: swrModel.GetUpdateRepoRequestContentTypeEnum().APPLICATION_JSONCHARSETUTF_8,
        Namespace:   "image-sync",
        Repository:  "docker.io/nginx",
        Body: &swrModel.UpdateRepoRequestBody{
            IsPublic: true,
        },
    }
    log.Println(request.String())
    resp, err := client.UpdateRepo(request)
    log.Println(err)
    log.Println(resp.String())

}
mawenbo-huawei commented 5 months ago

已收到反馈 我看一下这个问题

mawenbo-huawei commented 5 months ago

参考这个文档试一下: https://support.huaweicloud.com/swr_faq/swr_faq_2006.html docker.io/nginx -> docker.io$nginx

idweball commented 5 months ago

参考这个文档试一下: https://support.huaweicloud.com/swr_faq/swr_faq_2006.html docker.io/nginx -> docker.io$nginx

这样可以了