使用 s3 上传多个文件
Multiple file upload using s3
我想通过 aws golang sdk 将文件上传到我的 s3 存储桶。我有一个网络服务器正在侦听 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,
})
}
}
使用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,
})
打开returns一个File. This type satisfies the io.ReadSeeker界面。
使用 S3 管理器的 Uploader.Upload 方法,http://docs.aws.amazon.com/sdk-for-go/api/service/s3/s3manager/#Uploader.Upload. We have an example at http://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/s3-example-basic-bucket-operations.html#s3-examples-bucket-ops-upload-file-to-bucket。
我想通过 aws golang sdk 将文件上传到我的 s3 存储桶。我有一个网络服务器正在侦听 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,
})
}
}
使用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,
})
打开returns一个File. This type satisfies the io.ReadSeeker界面。
使用 S3 管理器的 Uploader.Upload 方法,http://docs.aws.amazon.com/sdk-for-go/api/service/s3/s3manager/#Uploader.Upload. We have an example at http://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/s3-example-basic-bucket-operations.html#s3-examples-bucket-ops-upload-file-to-bucket。