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

时间:2016-12-04 06:31:52

标签: go amazon-s3

我想直接将多部分文件流式传输到AWSS3,而不是先将文件保存到磁盘。在我的golang REST API中接收* multipart.FileHeader类型的文件。现在我想使用s3manager上传方法将此流传输到AWSS3,其中需要在body参数中传递* bytes.Reader。我看到了一个uploading file to AWSS3的例子,其编写方式是从磁盘打开类型为* os.File的文件 os.Open(“filepath”),得到* bytes.Reader out它并传递给AWSS3。现在我正在努力将这个* multipart.FileHeader转换为* os.File。

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

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

示例

val httpLoggingInterceptor = HttpLoggingInterceptor(OkHttpLogger()).apply {
    level = HttpLoggingInterceptor.Level.BODY
}