【问题标题】:Serving large Videofiles fails提供大型视频文件失败
【发布时间】:2018-09-04 03:09:39
【问题描述】:

我正在使用 Echo 框架的静态文件处理程序从我的上传目录中提供上传的文件。

e := echo.New()
e.Static("/uploads","uploads")  

这适用于较小的视频文件。我已经用 20MB 的视频文件对其进行了测试,效果很好。较大的文件(例如 50MB 的测试文件)不起作用。在提供整个文件之前,底层 TCP 连接已关闭。

有谁知道是否可以设置文件大小限制或计时器来防止这种情况发生?

【问题讨论】:

  • 我认为这不是正确的方法。例如,当使用 http 包时, http.ListenAndServe(":8080", http.FileServer(http.Dir("uploads"))) 工作正常,即使是大文件。我认为在 Echo 中可以设置一些限制,或者这是一个错误。

标签: http go go-echo


【解决方案1】:

您正在寻找echo.File()。此方法提供更长的文件,例如您的文件,因为http.FileServer()echo.File() 中使用的底层net/http 包是相同的。你可以添加这样的东西

echo.File("route","filepath",middleware).

您还可以使用与echo.Context 关联的相同功能,名称相同为c.File()。这里的函数定义比较短,在echo网页https://echo.labstack.com/cookbook/file-download中有一个例子。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-28
    • 2013-08-22
    • 2017-06-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    相关资源
    最近更新 更多