我试图将从API接收的文件传回给用户,而不必将其全部存储在内存中。
我在搜索中遇到了不同的概念/想法,例如io.Copy
,io.Pipe()
等。我不确定哪一个是正确的解决方案。
例如,如果有人在现场创建新的读者和作者,而不是已经存在的读者和作者,io.Pipe()
似乎就是这样。
答案 0 :(得分:10)
io.Copy
是实现这一目标的方式,其中包括:
func pipeReq(rw http.ResponseWriter, req *http.Request) {
resp, err := http.Get(".....")
if err != nil{
//handle the error
return
}
rw.Header().Set("Content-Type", resp.Header.Get("Content-Type"))
rw.Header().Set("Content-Length", resp.Header.Get("Content-Length"))
io.Copy(rw, resp.Body)
resp.Body.Close()
}
//编辑:误读了问题,现在修复了代码。