我正在尝试使用 golang 中的 io.Pipe() 函数流式传输 zip 文件的字节。我正在使用管道阅读器读取 zip 中每个文件的字节,然后将它们流式传输并使用管道编写器将字节写入响应对象中。
func main() {
r, w := io.Pipe()
// go routine to make the write/read non-blocking
go func() {
defer w.Close()
bytes, err := ReadBytesforEachFileFromTheZip()
err := json.NewEncoder(w).Encode(bytes)
handleErr(err)
}()
这不是一个有效的实现,而是我想要实现的结构。我不想使用 ioutil.ReadAll 因为文件会非常大,并且 Pipe() 将帮助我避免将所有数据放入内存。有人可以帮助使用 io.Pipe() 实现工作吗?
神不在的星期二
相关分类