为了账号安全,请及时绑定邮箱和手机立即绑定

使用“go-ipfs-api”下载视频时出现致命错误:运行时:内存不足

使用“go-ipfs-api”下载视频时出现致命错误:运行时:内存不足

Go
绝地无双 2023-07-17 14:18:16
我以前都是go-ipfs-api从ipfs下载大文件,web访问下载。我收到一个致命错误:运行时:内存不足。我该如何修改我的代码?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}
查看完整描述

1 回答

?
繁星淼淼

TA贡献1775条经验 获得超11个赞

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


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

io.Copy(w,fd)

return

我不熟悉您正在使用的库,您可能需要在复制后调用 fd.Close() 。


查看完整回答
反对 回复 2023-07-17
  • 1 回答
  • 0 关注
  • 89 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信