登录
首页 >  Golang >  Go问答

传输 AWS 凭证至我的应用程序(使用 Golang SDK)的方法

来源:stackoverflow

时间:2024-02-19 17:27:25 308浏览 收藏

在IT行业这个发展更新速度很快的行业,只有不停止的学习,才不会被行业所淘汰。如果你是Golang学习者,那么本文《传输 AWS 凭证至我的应用程序(使用 Golang SDK)的方法》就很适合你!本篇内容主要包括##content_title##,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

我正在尝试学习如何使用适用于 go 的 aws-sdk。我开始尝试列出我的存储桶,但收到以下错误: ... nocredentialproviders:链中没有有效的提供程序。已弃用。

这是到目前为止所做的事情:

  1. 我创建了一个具有“amazons3fullaccess”的用户。

  2. 我尝试将 .aws/credentials 放在与我的测试应用程序相同的目录中以及我的主目录中。

  3. 凭据文件如下所示:

    [我的帐户名称]

    aws_access_key_id = adfalksnfafv(创建用户的密钥 id)

    aws_secret_access_key = adsfdsafgalmnglaf(用户的秘密访问密钥)

我的代码如下所示:

func init() {

    s3session = s3.New(session.Must(session.NewSession(&aws.Config{
        Region: aws.String("sa-east-1"),
    })))

}

func listBuckets() (resp *s3.ListBucketsOutput) {

    resp, err := s3session.ListBuckets(&s3.ListBucketsInput{})
    if err != nil {
        log.Fatal("Unable to list buckets: ", err)
    }

    return resp
}
func main() {

    fmt.Println(listBuckets())
}

解决方案


您应该放弃属于 aws-sdk-go-v1(已弃用)的 session,并使用 aws-sdk-go-v2 中的 cfg

所以,导入:

"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/config"
"github.com/aws/aws-sdk-go-v2/service/s3"

要使用 .aws/credentials 中引用的 [我的帐户名称] 进行设置:

cfg, err := config.loaddefaultconfig(
    config.withsharedconfigprofile("my-account-name"))

然后,拥有您的 s3 服务客户端:

svc := s3.NewSessionFromConfig(cfg)

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>