将http.Response连接到http.ResponseWriter

Joh*_*ohn 6 go

我正在尝试将从API接收的文件传送回用户,而不必将其全部存储在内存中.

我已经遇到不同的概念/想法在我的搜索,比如io.Copy,io.Pipe()等我不知道哪一个是正确的解决方案.

例如,io.Pipe()似乎有人在现场创建一个新的读者和作者,而不是已经存在的那个.

One*_*One 11

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()

}
Run Code Online (Sandbox Code Playgroud)

//编辑:误读了问题,现在修复了代码.