Go 从s3流式传输hls视频

Go 从s3流式传输hls视频,go,amazon-s3,stream,video-streaming,Go,Amazon S3,Stream,Video Streaming,我需要有在s3桶hls视频块,我需要流到前端。从正面看,他们只需将get请求发送到video/filename,我需要将文件返回。问题是,如果我以标准方式执行,那么它将下载到我的服务器文件,保存到缓冲区,然后发送到前端,这不是很好。而不是这个,我想“流”它,所以当,比方说,1000字节到达时,我立即将它发送到前端,而不是等待完成donwload。 问题是我怎样才能做到这一点?我想如果我使用copy(responseWriter,response.Body),它实际上会发送响应,但它会流式传输吗?

我需要有在s3桶hls视频块,我需要流到前端。从正面看,他们只需将get请求发送到
video/filename
,我需要将文件返回。问题是,如果我以标准方式执行,那么它将下载到我的服务器文件,保存到缓冲区,然后发送到前端,这不是很好。而不是这个,我想“流”它,所以当,比方说,1000字节到达时,我立即将它发送到前端,而不是等待完成donwload。
问题是我怎样才能做到这一点?我想如果我使用
copy(responseWriter,response.Body)
,它实际上会发送响应,但它会流式传输吗?我应该使用反向代理吗?有没有使用fasthttp的解决方案?

io.Copy
在内部使用32kB的缓冲区。若这对于你们的流媒体来说太大(或者你们想限制你们的流媒体的速率),那个么你们只需要实现从上游读写到下游的for循环。窥探io.Copy的实现并不重要,那么您的实际问题是什么?

“但它会流吗?”这取决于您对“流”的定义。“有没有使用fasthttp的解决方案?”没有。我的意思是不要等到整个对象加载到我的服务器,然后将其上载到前端,而是继续这样做,例如,我已收到1000字节—我将其推送到前端,我已收到下一个1000字节—我已将其推送到前端,所以当我将从s3存储接收最后N个字节时,我只需要在一次迭代中将这些字节发送到前端,而不是一次上载整个文件