【问题标题】:Multiple file upload using s3使用 s3 上传多个文件
【发布时间】:2017-12-13 04:17:22
【问题描述】:

我想通过 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,
            })
    }
}

【问题讨论】:

    标签: amazon-web-services go amazon-s3 aws-sdk-go


    【解决方案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,
            })
    

    Open 返回一个File。该类型满足io.ReadSeeker接口。

    【讨论】:

      【解决方案2】:
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-25
      • 1970-01-01
      • 1970-01-01
      • 2020-04-05
      • 2018-10-09
      • 1970-01-01
      相关资源
      最近更新 更多