我想通过aws golang sdk将文件上传到我的s3存储桶。我有一个Web服务器监听POST请求,我希望收到任何类型的多个文件。
使用sdk,s3结构PutObjectInput
期望Body
的类型为io.ReadSeeker
,我不确定如何从上传的文件中提取内容,反过来满足io.ReadSeeker
接口。
images := r.MultipartForm.File
for _, files := range images {
for _, f := range files {
# In my handler, I can loop over the files
# and see the content
fmt.Println(f.Header)
_, err = svc.PutObjectWithContext(ctx, &s3.PutObjectInput{
Bucket: aws.String("bucket"),
Key: aws.String("key"),
Body: FILE_CONTENT_HERE,
})
}
}
答案 0 :(得分:1)
使用FileHeader.Open方法获取io.ReadSeeker
。
f, err := f.Open()
if err != nil {
// handle error
}
_, err = svc.PutObjectWithContext(ctx, &s3.PutObjectInput{
Bucket: aws.String("bucket"),
Key: aws.String("key"),
Body: f,
})
打开返回File。此类型满足io.ReadSeeker接口。
答案 1 :(得分:0)