php小編魚仔在使用GO語言的AWS SDK時,遇到了一個問題,即s3.GetObjectInput不是類型的錯誤。這個錯誤在使用GO語言呼叫AWS S3服務時經常遇到,它意味著GetObjectInput類型的參數傳遞錯誤。解決這個問題的方法有很多,包括檢查程式碼中的類型定義、參數傳遞是否正確等。在解決這個問題之前,我們先來了解GetObjectInput是什麼類型,以及它在AWS S3服務中的作用。
我嘗試使用aws 的go sdk 從s3 下載文件,執行類似於aws 提供的範例中所做的操作:https://docs.aws.amazon.com /sdk-for-go /api/service/s3/
package main import ( "context" "fmt" "io/ioutil" "os" "path/filepath" "github.com/aws/aws-sdk-go/service/s3" "github.com/aws/aws-sdk-go/service/s3/s3manager" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-lambda-go/events" "github.com/aws/aws-lambda-go/lambda" "github.com/davidbyttow/govips/v2/vips" ) func handler(ctx context.Context, s3Event events.S3Event) { for _, record := range s3Event.Records { s3 := record.S3 sess, err := session.NewSession(&aws.Config{ Region: aws.String("<REGION>"), }) if err != nil { exitErrorf("cannot create s3 session, %v", err) } downloader := s3manager.NewDownloader(sess) file, err := os.Create(filepath.Base(s3.Object.Key)) if err != nil { exitErrorf("DownloadFile:::Unable to open file, %v", err) } defer file.Close() numBytes, err := downloader.Download(file, &s3.GetObjectInput{ Bucket: aws.String("<BUCKET>"), Key: aws.String(s3.Object.Key), }) if err != nil { exitErrorf("Unable to download item %q, %v", s3.Object.Key, err) } fmt.Println("Downloaded", file.Name(), numBytes, "bytes") }
當我嘗試建立專案時,出現錯誤:
「github.com/aws/aws-sdk-go/service/s3」已匯入但未使用
和
s3.getobjectinput 不是型別
我已經運行了 go get on 使用的軟體包和 go mod tidy 來整理我的 go.mod 檔案。它似乎對 s3manager 行和其他 aws 軟體包非常滿意,它只是抱怨 s3 引用。
我缺少一些簡單的東西嗎?
導入的套件github.com/aws/aws-sdk-go/service/s3
的套件名稱為s3
,透過s3 := record.s3
隱藏。這就是您看到錯誤的原因。
建議的解決方案是修改 s3 := record.s3
以選擇其他身分。例如,s3entity := record.s3
。不要忘記將原始程式碼中的 s3.object.key
替換為 s3entity.object.key
。
另一個選項是為匯入的套件指定另一個名稱。例如:
import awss3 "github.com/aws/aws-sdk-go/service/s3"
參考規範的「宣告與範圍」部分:
宣告將非空標識符綁定到常數、型別、型別參數、變數、函數、標籤或套件。 ...
go 使用區塊進行詞法作用域:
在區塊中宣告的標識符可以在內部區塊中重新宣告。當內部宣告的識別符在範圍內時,它表示內部宣告所宣告的實體。
另請參閱導入聲明。
以上是GO AWS SDK s3.GetObjectInput 不是類型的詳細內容。更多資訊請關注PHP中文網其他相關文章!