为了账号安全,请及时绑定邮箱和手机立即绑定

尝试列出 GCP 组织内的文件夹时出错

尝试列出 GCP 组织内的文件夹时出错

Go
呼如林 2022-10-10 19:10:52
我正在尝试在 GO 中编写一个简单的代码,该代码使用resourcemanager API列出 GCP 中组织下的所有文件夹。下面是我的代码:package mainimport (   "context"   "log"   resourcemanager "cloud.google.com/go/resourcemanager/apiv2"   "google.golang.org/api/iterator"   resourcemanagerpb "google.golang.org/genproto/googleapis/cloud/resourcemanager/v2")func main() {   ctx := context.Background()   c, err := resourcemanager.NewFoldersClient(ctx)   if err != nil {       // TODO: Handle error.       log.Println("Error: Failed to start client.")   }   defer c.Close()   req := &resourcemanagerpb.ListFoldersRequest{       Parent: "organizations/<MY-ORG-NAME>",   }   it := c.ListFolders(ctx, req)   tries := 0   for {       resp, err := it.Next()       if err == iterator.Done || tries == 3 {           break       }       if err != nil {          log.Println(err)       }       // TODO: Use resp.       log.Println(resp)       tries++   }}代码直接从 API 文档复制,我只是添加了我的组织名称,添加了一些日志功能并限制了 for 循环中的尝试,因为它无休止地打印错误。每当我运行代码时,我都会收到以下错误消息:2021/11/04 17:06:41 rpc error: code = Unimplemented desc = unexpected HTTP status code received from server: 404 (Not Found); transport: received unexpected content-type "text/html; charset=UTF-8"我不确定这是否是解决方案,但是;我想我需要.proto在我的目录中添加一个文件才能让它工作,但我不明白如何做到这一点或究竟要放什么。我是 GO 新手,这是我第一次使用 API,所以这一切对我来说似乎很混乱。很感谢任何形式的帮助!
查看完整描述

1 回答

?
胡说叔叔

TA贡献1804条经验 获得超8个赞

迁移到 API v3 解决了这个问题。这完美!


感谢所有发表评论的人以及找到解决方案的同事!


package main


import (

    "context"

    "fmt"

    "log"


    cloudresourcemanager "google.golang.org/api/cloudresourcemanager/v3"

)


func main() {

    ctx := context.Background()

    svc, err := cloudresourcemanager.NewService(ctx)

    if err != nil {

        log.Fatal(err)

    }

    foldersService := cloudresourcemanager.NewFoldersService(svc)

    foldersListCall := foldersService.List()

    foldersListCall.Parent("organizations/<MY-ORG-ID>")

    resp, err := foldersListCall.Do()

    if err != nil {

        log.Fatal(err)

    }

    for _, fld := range resp.Folders {

        fmt.Println(fld.DisplayName)

    }

}


查看完整回答
反对 回复 2022-10-10
  • 1 回答
  • 0 关注
  • 121 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号