我正在寻找将 S3 存储桶与正在开发的 API 集成,无论我走到哪里都会遇到这个错误 -
SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your key and signing method. status code: 403
我做了以下
已安装 SDK 和 AWS CLI,并已配置 AWS
双重(三重)检查密钥和秘密密钥和存储桶权限的拼写
尝试使用凭证文档、.env,甚至直接对值进行硬编码
使用 AWS CLI 测试(此工作),所以我相信我可以排除权限、密钥作为一个整体。
我正在通过尝试列出存储桶进行测试,这是直接取自 AWS 文档的代码-
sess := session.Must(session.NewSessionWithOptions(session.Options{ <--- DEBUGGER SET HERE
SharedConfigState: session.SharedConfigEnable,
}))
svc := s3.New(sess)
result, err := svc.ListBuckets(nil)
if err != nil { exitErrorf("Unable to list buckets, %v", err) }
for _, b := range result.Buckets {
fmt.Printf("* %s created on %s\n", aws.StringValue(b.Name), aws.TimeValue(b.CreationDate))
}
使用调试器,我可以在程序运行时看到会话配置文件,问题可能在这里
config -
-> credentials
-> creds
-> v
-> Access Key = ""
-> Secret Access Key = ""
-> Token = ""
-> provider
->value
-> Access Key With Value
-> Secret Access Key With Value
-> Token With Value
我个人找不到任何关于“creds”/“v”的文档,我不知道这是否是导致问题的原因。正如我所提到的,我可以使用 AWS CLI 上传到存储桶中,即使我将访问密钥等硬编码到 Go SDK 中,我也会收到此错误。
拉丁的传说
UYOU
红糖糍粑
相关分类