GO AWS SDK s3.GetObjectInput 不是类型
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(""), }) 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(""), 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") }登录后复制