尝试通过Grails控制器从Amazon S3流式传输MP4视频文件时出现问题。我想在S3上托管一个视频文件,然后通过grails控制器对其进行流式处理(或发送),该控制器将由html页面中的video.js播放器前端访问。
我需要将S3上的视频保密,所以只能在S3上公开视频并使用直接网址是不可能的。任何帮助表示赞赏。
控制器:
def video = {
def s3 = amazonWebService.s3
def file = s3.getObject(params.bucketName, params.key)
response.status = 206
response.contentType = "video/mp4"
response.outputStream << file.objectContent
response.outputStream.flush()
response.outputStream.close()
}
视频(GSP前端):
<video id="example_video_1" class="video-js vjs-default-skin"
controls preload="auto" width="640" height="264"
poster="http://video-js.zencoder.com/oceans-clip.png"
data-setup='{"example_option":true}'>
<source src="${createLink(controller:'home', action:'video', params:[bucketName:bucketInstance, key:videoFileInstance])}" type='video/mp4' />
</video>
答案 0 :(得分:1)
您无需下载视频。
最后,您可以在所有主流浏览器中播放视频。
希望这有帮助。