关于go:如何在golang中将* multipart.FileHeader文件类型转换为* os.File

How to convert *multipart.FileHeader file type to *os.File in golang

我想将多部分文件直接流式传输到AWSS3,而不是首先将文件保存到磁盘。在我的golang REST API中接收* multipart.FileHeader类型的文件。现在,我想使用s3manager上传方法将其流式传输到AWSS3,其中需要在主体参数中传递* bytes.Reader。我已经看到了一个将文件上传到AWSS3的示例,该示例的编写方式是从磁盘打开* os.File类型的文件os.Open(" filepath"),从其中获取* bytes.Reader并传递给AWSS3。现在我正在努力将此* multipart.FileHeader转换为* os.File。


multipart.FileHeader上调用Open。它将返回一个multipart.File,它将为文件提供阅读器(将保存在内存中)。


您可以使用os.Open()将multipart.FileHeader转换为*(os.File)

示例

1
2
_, header , _ := c.Request.FormFile("upload")
out, _ := os.Open(header.Filename)