【发布时间】:2014-03-09 14:36:32
【问题描述】:
我有一个基于 Martini 的小型应用程序,但遇到了一个我无法解决的问题。
我想添加一个应用程序功能,允许用户从第三台服务器获取文件,并对 HTTP 标头进行一些更改。某种代理。这些文件非常大(每个 200+Mb),我希望将这些文件“流式传输”到客户端。 “流”是指文件数据应该在应用程序接收到第一个字节后立即开始返回到客户端,而不会将整个文件保存在磁盘和/或内存中。
Martini 和 Go 可以做到这一点吗?
【问题讨论】:
-
退伍军人对这些“简单”框架的问题如此沮丧的原因之一就是这样的问题。如果您不使用马提尼酒,这很简单明了。事实上,支持范围请求、条件获取、压缩协商等……几乎不需要您付出任何努力。作为观察者,这些框架似乎只会让事情变得更难,效率更低。
-
@Dustin 这通常是正确的,但仍然缺少一些东西。以大猩猩为例。他们添加了自动模式解析。这非常有用。我个人已经扩展它以添加输入验证(他们不希望它作为 gorilla.schema 的一部分,我需要它),但我喜欢 Gorilla 的地方在于您只需稍微扩展标准 http 库 - 只是一样多根据需要。
-
gorilla 不是一个框架,而是一些在您需要时添加功能的软件包。