我创建了一个新的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 但删除了秘密部分,因为它仍然给了我同样的错误。对于如何解决这个问题,有任何的建议吗
答案 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/了解详情。