当使用window.open打开S3存储的视频文件时,浏览器的默认行为是根据S3对象的内容类型(Content-Type)来处理文件。
如果S3对象的内容类型被识别为需要下载的文件类型(如application/octet-stream),那么浏览器就会将其下载到本地,而不是直接在浏览器中进行预览。
原因可能是S3对象的Content-Type没有正确设置。默认情况下,S3将使用MIME类型推断功能来判断对象的内容类型,但有时它可能没有正确的识别文件类型。
解决这个问题可以尝试两种解决方式:
1. 手动设置Content-Type:在将视频文件上传到S3之前,手动指定对象的Content-Type为适当的视频媒体类型,如 vide/mp4、video/mpeg 等。这可以通过在上传文件时设置HTTP头部中的Content-Type来完成,或者使用S3管理控制台的“属性”选项卡手动设置。
2. 使用S3事件触发器:可以配置S3事件触发器,以在文件上传成功后自动执行一些操作,包括设置正确的Content-Type。通过在调用AWS Lambda函数时访问文件的元数据,并根据文件扩展名或其他指标判断出正确的Content-Type,然后将其应用于S3对象。