没有找到Golang亚马逊s3环境访问密钥

时间:2016-12-01 23:17:37

标签: go amazon-s3

我创建了一个新的I-AM用户集,该用户集具有S3完全访问权限的用户权限,然后我看到具有正确密钥和密钥ID的MacBook环境变量。然后我跟着亚马逊文档http://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/common-examples.html#s3列出了我的所有桶,我收到了错误 无法列出存储桶EnvAccessKeyNotFound:在环境中找不到AWS_ACCESS_KEY_ID或AWS_ACCESS_KEY

我不知道为什么它没有识别我的代码是什么

func UploadProfile() {

    svc := s3.New(session.New(&aws.Config{Region: aws.String("us-west-2"),Credentials:credentials.NewEnvCredentials()}))
    result, err := svc.ListBuckets(&s3.ListBucketsInput{})
    if err != nil {
        log.Println("Failed to list buckets", err)
        return
    }

    log.Println("Buckets:")
    for _, bucket := range result.Buckets {
        log.Printf("%s : %s\n", aws.StringValue(bucket.Name), bucket.CreationDate)
    }
}

我之前有一个变量 AWS_SECRET_ACCESS_KEY 但删除了秘密部分,因为它仍然给了我同样的错误。对于如何解决这个问题,有任何的建议吗 enter image description here

1 个答案:

答案 0 :(得分:-1)

@Pablo prez,

获取凭据实际上是从您的环境中显示AWS密钥,即如果您运行

creds := credentials.NewEnvCredentials()
credValue, err := creds.Get()
if err != nil {
    panic(err.Error())
}

fmt.Printf("%+v", credValue)

会打开你的钥匙吗?

您可以查看https://docs.aws.amazon.com/sdk-for-go/api/aws/credentials/了解详情。