我想通过 aws golang sdk 将文件上传到我的 s3 存储桶。我有一个监听 POST 请求的网络服务器,我希望接收任何类型的多个文件。
使用 sdk,s3 结构 PutObjectInput
期望 Body
为 io.ReadSeeker
类型,我不确定如何提取上传文件的内容,进而满足 io.ReadSeeker
接口(interface)。
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,
})
}
}
最佳答案
使用 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界面。
关于amazon-web-services - 使用 s3 上传多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47719788/