为了账号安全,请及时绑定邮箱和手机立即绑定

Golang 将 Http 请求 FormFile 上传到 Amazon S3

Golang 将 Http 请求 FormFile 上传到 Amazon S3

Go
慕沐林林 2021-11-01 16:22:18
我正在创建一个微服务来处理一些附件上传到 Amazon S3,我想要实现的是接受一个文件,然后将它直接存储到我的 Amazon S3 存储桶,我当前的功能:func upload_handler(w http.ResponseWriter, r *http.Request) {  file, header, err := r.FormFile("attachment")  if err != nil {    fmt.Fprintln(w, err)    return  }  defer file.Close()  fileSize, err := file.Seek(0, 2) //2 = from end    if err != nil {         panic(err)    }    fmt.Println("File size : ", fileSize)  bytes := make([]byte, fileSize)  // read into buffer  buffer := bufio.NewReader(file)  _, err = buffer.Read(bytes)  auth := aws.Auth{        AccessKey: "XXXXXXXXXXX",        SecretKey: "SECRET_KEY_HERE",  }  client := s3.New(auth, aws.EUWest)  bucket := client.Bucket("attachments")  err = bucket.Put(header.Filename, bytes, header.Header.Get("Content-Type"), s3.ACL("public-read"))  if err != nil {    fmt.Println(err)    os.Exit(1)  }}问题是存储在S3中的文件都被损坏了,经过一个小的验证,似乎文件payload不是作为字节读取的如何将文件转换为字节并将其正确存储到 S3 ?
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 277 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信