gpt4 book ai didi

go - 使用 GetObjectInput 时获取 InvalidToken "The provided token is malformed or otherwise invalid"

转载 作者:行者123 更新时间:2023-12-01 22:21:30 27 4
gpt4 key购买 nike

按照 AWS 文档中关于如何从 S3 下载对象的信函,我收到了 The provided token is malformed or otherwise invalid错误。
我正在通过 AWS SAM CLI 运行我的代码。
我的代码是:

    sess, _ := session.NewSession(&aws.Config{
Region: aws.String(endpoints.UsWest2RegionID),
})

svc := s3.New(sess)

aak := os.Getenv("AWS_ACCESS_KEY")
ask := os.Getenv("AWS_SECRET_KEY")
fmt.Println("aak", aak, "ask", ask) // both of these correctly show my keys are being passed in

resp, err := svc.GetObject(&s3.GetObjectInput{
Bucket: aws.String(bucket),
Key: aws.String(key),
})

if err != nil {
fmt.Println(err)
}
我正在运行它: sam local invoke LambdaMyFunction --debug -e test/event.json我验证了 AWS 访问 key 和 key 是正确的。我验证我可以通过 CLI 下载对象: aws s3api get-object --bucket "mybucket-dev" --key "mydir/mykey_test.json" result.txtresult.txt 填充了 mykey_test.json 的内容,所以我知道我的凭据可以访问该文件。我假设问题与 lambda 使用无法访问文件的角色有关?但我找不到足够的信息来验证这种可能性,或者如何解决本地测试的问题。

最佳答案

结果是AWS_SESSION_TOKEN正在字符串中传递 (null) ,这绝对不是有效的 session token 。所以我的代码如下所示:

os.Setenv("AWS_SESSION_TOKEN", "")
sess, _ := session.NewSession()
现在我可以成功下载文件了。
由于我们还不知道这将如何通过实际的 lambda 传递,我对其进行了检查,如下所示:
    // this is STUPID!!! But necessary.
if os.Getenv("AWS_SESSION_TOKEN") == "(null)" {
os.Setenv("AWS_SESSION_TOKEN", "")
}
sess, _ := session.NewSession()

关于go - 使用 GetObjectInput 时获取 InvalidToken "The provided token is malformed or otherwise invalid",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63164129/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com