我收到一个错误致命错误:运行时:使用'go-ipfs-api'下载视频时内存不足



我用go-ipfs-api从ipfs下载了一个大文件,网络访问下载。

我收到一个错误致命错误:

运行时:内存不足。

如何修改我的代码?

func main()  {
http.HandleFunc("/", download)
http.ListenAndServe(":8080", nil)
}
func download(w http.ResponseWriter, r *http.Request) {
client := shell.NewShell("http://127.0.0.1:5001")
fd, err := client.Cat("QmTcj7SfRf4vnLnCqnxMT7kutrzFyevjBeT5RCiN9xGAL4")
if err != nil{
fmt.Println(err.Error())
w.WriteHeader(http.StatusInternalServerError)
return
}
defer fd.Close()
fileName := "demo.mp4"
// As per RFC6266 section 4.3
w.Header().Set("Content-Disposition", "attachment; filename*=utf-8''"+ fileName)
data, _ := ioutil.ReadAll(fd)
http.ServeContent(w, r, fileName, time.Now().Local(), bytes.NewReader(data))
w.WriteHeader(http.StatusOK)
return
}

您可以使用 io 代替 ReadAll。复制,但您必须自己设置内容类型:

w.Header.Set("Content-Type",<the content type>)
io.Copy(w,fd)
return

我不熟悉您正在使用的库,您可能需要致电 fd。复制后关闭((。

最新更新