第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

AWS S3 - Golang 開發(fā)工具包 - SignatureDoesNotMatch

AWS S3 - Golang 開發(fā)工具包 - SignatureDoesNotMatch

Go
慕慕森 2022-06-13 17:07:01
我正在尋找將 S3 存儲桶與正在開發(fā)的 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雙重(三重)檢查密鑰和秘密密鑰和存儲桶權(quán)限的拼寫嘗試使用憑證文檔、.env,甚至直接對值進(jìn)行硬編碼使用 AWS CLI 測試(此工作),所以我相信我可以排除權(quán)限、密鑰作為一個整體。我正在通過嘗試列出存儲桶進(jìn)行測試,這是直接取自 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))    }使用調(diào)試器,我可以在程序運行時看到會話配置文件,問題可能在這里config -       -> credentials                      -> creds                         -> v                           -> Access Key = ""                           -> Secret Access Key  = ""                           -> Token  = ""                                                 -> provider                         ->value                           -> Access Key With Value                           -> Secret Access Key With Value                           -> Token With Value我個人找不到任何關(guān)于“creds”/“v”的文檔,我不知道這是否是導(dǎo)致問題的原因。正如我所提到的,我可以使用 AWS CLI 上傳到存儲桶中,即使我將訪問密鑰等硬編碼到 Go SDK 中,我也會收到此錯誤。
查看完整描述

3 回答

?
拉丁的傳說

TA貢獻(xiàn)1789條經(jīng)驗 獲得超8個贊

我剛剛編譯了您的代碼并且它的執(zhí)行正常......向您的二進(jìn)制文件提供憑據(jù)的眾多方法之一是填充這些環(huán)境變量


export AWS_ACCESS_KEY_ID=AKfoobarT2IJEAU4

export AWS_SECRET_ACCESS_KEY=oa6oT0Xxt4foobarbambazdWFCb

export AWS_REGION=us-west-2

這就是您在使用 env var 方法時所需要的(您的值可使用 aws 控制臺瀏覽器獲得)


大局是創(chuàng)建一個包裝器外殼腳本 (bash),其中包含以上三行來填充環(huán)境變量以提供憑據(jù),然后在同一個外殼腳本中執(zhí)行 golang 二進(jìn)制文件(通常您在一些初步過程中編譯 golang)...在我的情況下,我將三個環(huán)境變量的值存儲在加密文件中,shell 腳本在調(diào)用上述導(dǎo)出命令之前對其進(jìn)行解密


有時它有助于放棄踢,只需使用 aws 命令行等效命令讓自己進(jìn)入球場......從終端運行


aws s3 ls s3://cairo-mombasa-zaire --region  us-west-2

它也可以使用上面顯示的相同環(huán)境變量


為了完整起見,這里是您添加了樣板的代碼......這運行正常并列出了桶


package main


import (


    "github.com/aws/aws-sdk-go/aws"

    "github.com/aws/aws-sdk-go/aws/session"


    "github.com/aws/aws-sdk-go/service/s3"

    // "github.com/aws/aws-sdk-go/service/s3/s3manager"


    "fmt"

    "os"

)



func exitErrorf(msg string, args ...interface{}) {

    fmt.Fprintf(os.Stderr, msg+"\n", args...)

    os.Exit(1)

}


func main() {


    region_env_var := "AWS_REGION"


    curr_region := os.Getenv(region_env_var)

    if curr_region == "" {

        exitErrorf("ERROR - failed to get region from env var %v", region_env_var)

    }


    fmt.Println("here is region ", curr_region)



    // Load session from shared config

    sess := session.Must(session.NewSessionWithOptions(session.Options{

        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))

    }

}


查看完整回答
反對 回復(fù) 2022-06-13
?
UYOU

TA貢獻(xiàn)1878條經(jīng)驗 獲得超4個贊

   numBytes, err := downloader.Download(tempFile,

    &s3.GetObjectInput{

        Bucket: aws.String(bucket),

        Key:    aws.String(fileName),

    },

)

在我的情況下,桶值是錯誤的,最后缺少文字“/”。添加它可以解決我的問題。


我得到的錯誤 - 錯誤:SignatureDoesNotMatch:我們計算的請求簽名與您提供的簽名不匹配。檢查您的密鑰和簽名方法。狀態(tài)碼:403,


查看完整回答
反對 回復(fù) 2022-06-13
?
紅糖糍粑

TA貢獻(xiàn)1815條經(jīng)驗 獲得超6個贊

如果其他人碰巧有這個問題,

問題是關(guān)于環(huán)境變量,就像斯科特上面建議的那樣,但這是由于缺乏

export AWS_SDK_LOAD_CONFIG="true"

如果此環(huán)境變量不存在,則 Golang SDK 將不會查找憑據(jù)文件,此外,我為我的兩個密鑰實例化了環(huán)境變量,以使連接成功。

回顧一下

  • 如果您嘗試使用共享憑據(jù)文件夾,則必須使用上述環(huán)境變量來啟用它。

  • 如果您使用環(huán)境變量,則不應(yīng)受到此問題的影響。


查看完整回答
反對 回復(fù) 2022-06-13
  • 3 回答
  • 0 關(guān)注
  • 702 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號