学习Golang要努力,但是不要急!今天的这篇文章《使用 S3 实时传送 HLS 视频》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!
问题内容我需要在 s3 存储桶中有 hls 视频块,我需要将其流式传输到前端。从前端来看,这相当简单 - 他们只需将 get 请求发送到 video/filename
,我需要返回文件。问题是,如果我以标准方式执行此操作,那么它将下载到我的服务器文件,将其保存到缓冲区,然后发送到前面,这不是很好。相反,我想“流”它,所以当,比如说,1000 个字节到达时,我立即将其发送到前面,而不是等待完全下载。
问题是我该怎么做?我认为如果我使用 copy(responseWriter, response.Body)
,它实际上会发送响应,但它会流式传输吗?我应该使用反向代理吗?有没有使用fasthttp的解决方案?
解决方案
io.Copy
内部使用 32kB 缓冲区。如果这对于您的流式传输来说太大(或者如果您想限制流式传输的速率),只需实现 for 循环,该循环从上游读取并自己写入下游。查看 io.Copy 的实现很简单,那么您的实际问题是什么?
本篇关于《使用 S3 实时传送 HLS 视频》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注编程网公众号!