我需要在s3存储桶中包含hls视频块,我需要将其流式传输到前端。从正面看,这很容易-他们只需将get请求发送到video/filename,我需要将文件退回。关键是,如果我以标准方式进行操作,则它将下载到我的服务器文件中,并将其保存到缓冲区中,而不是发送到前端,那不是很好。取而代之的是,我想“流式传输”它,因此,当到达1000个字节时,我立即将其发送到前端,而不是等待完整的下载。
问题是我该怎么做?我以为如果我使用copy(responseWriter, response.Body),它将比实际发送响应,但是会流吗?我应该使用反向代理吗?使用fasthttp有什么解决方案吗?

最佳答案

io.Copy在内部使用32kB缓冲区。如果这对于您的流媒体来说太大(或者您想对流媒体进行速率限制),则只需实现for循环即可从上游读取并自己写入下游。偷看io.Copy的实现是微不足道的,那么您的实际问题是什么?

09-06 02:28