gpt4 book ai didi

去大文件下载并传递给客户端(代理)

转载 作者:数据小太阳 更新时间:2023-10-29 03:07:37 27 4
gpt4 key购买 nike

我有一个基于 Martini 的小型应用程序,但遇到了一个我无法解决的问题。

我想添加一个应用程序功能,允许用户从第三个服务器获取文件,并在 HTTP header 中进行一些更改。某种代理。这些文件非常大(每个 200+Mb),我希望将这些文件“流式传输”到客户端。 “流”是指文件数据应在应用程序接收到第一个字节后立即开始返回客户端,而不会将整个文件保存在磁盘和/或内存中。

这对 Martini 和 Go 来说可能吗?

最佳答案

是的,一般情况下使用 Go 是可能的,我对 Martini 不是特别熟悉。调用远程文件的 http 响应返回一个 Reader 接口(interface),而您的请求处理程序有一个 Writer 接口(interface)。这意味着您可以读取数据流,并写入数据流。让你的责任只是操纵你想要的东西,并将转发的流“修补”到请求流。

Go 甚至在标准库中内置了一个 ReverseProxy 实用程序:

http://golang.org/pkg/net/http/httputil/#ReverseProxy

如果需要,您可以混合使用 Martini 和标准 http 库。

[编辑] 阅读 martini 文档,您可以像标准库那样添加原始 http 处理程序,这意味着您确实可以这样做:https://github.com/codegangsta/martini#service-injection

关于去大文件下载并传递给客户端(代理),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22283505/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com