【问题标题】:AWS SDK in Go does not take region information from profileGo 中的 AWS 开发工具包不会从配置文件中获取区域信息
【发布时间】:2022-01-19 16:47:49
【问题描述】:

尝试关注官方example 列出存储桶

    sess, err := session.NewSessionWithOptions(session.Options{
        Profile: "my-profile",
    })

    if err != nil {
        exitErrorf("Unable to create session, %v", err)
    }

    // Create S3 service client
    svc := s3.New(sess)
    result, err := svc.ListBuckets(nil)
    if err != nil {
        exitErrorf("Unable to list buckets, %v", err)
    }

请注意,my-profile(位于 ~/.aws/credentials 中)具有关联的区域信息

[my-profile]
aws_access_key_id=XXXXXXX
aws_secret_access_key=XXXXXXX
region=us-east-1

程序失败如下:

Unable to list buckets, MissingRegion: could not find region configuration
exit status 1

编辑:设法通过添加这行代码来解决这个问题

os.Setenv("AWS_REGION", "us-east-1")

但我想正确的方法应该是让 SDK 正确读取配置文件,不是吗?

【问题讨论】:

  • 您可能只想使用~/.aws/config,因为它可以存储配置和凭据。

标签: amazon-web-services go amazon-s3 aws-sdk


【解决方案1】:

region is set~/.aws/config

~/.aws/config

[my-profile]
region=us-east-1

~/.aws/凭据

[my-profile]
aws_access_key_id=XXXXXXX
aws_secret_access_key=XXXXXXX

【讨论】:

    猜你喜欢
    • 2016-04-26
    • 2022-01-22
    • 1970-01-01
    • 2022-01-19
    • 2019-06-18
    • 2011-12-22
    • 1970-01-01
    • 2017-02-09
    • 1970-01-01
    相关资源
    最近更新 更多