大家好 我一开始上传了一个视频发现能在线播放 后来继续上传了20G的视频 发现视频外链只能下载 不能在线播放
Content-Type 是application/octet-stream |
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您描述的情况,上传的视频外链只能下载而无法在线播放,可能与以下几个原因有关。以下是详细的分析和解决方法:
阿里云对象存储(OSS)在特定时间之后对新开通的用户或启用了传输加速的Bucket,默认会在返回头中增加以下Header:
x-oss-force-download:true
Content-Disposition: attachment
这会导致浏览器将文件识别为下载文件,而不是直接预览。
Content-Disposition
:通过设置Content-Disposition
为inline
来生成一个预览链接。例如:
const previewUrl = generateSignedUrl({
ContentDisposition: 'inline'
});
您提到Content-Type
是application/octet-stream
,这表明OSS未能正确识别视频文件的格式。OSS默认根据文件后缀名设置MIME类型,如果文件没有后缀名或后缀名不正确,可能会导致浏览器无法正确识别文件类型。
Content-Type
为正确的视频格式。例如:
video/mp4
application/x-mpegURL
如果文件较多,可以通过OSS SDK批量修改MIME类型。示例代码如下:
import oss2
auth = oss2.Auth('<your-access-key-id>', '<your-access-key-secret>')
bucket = oss2.Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<your-bucket-name>')
# 修改单个文件的Content-Type
bucket.update_object_meta('<your-object-key>', {'Content-Type': 'video/mp4'})
某些浏览器可能不支持特定的视频格式。例如,Safari浏览器支持M3U8格式,但其他浏览器可能不支持。
如果文件的访问权限未设置为公共读,可能导致外链无法正常访问。
如果您绑定了自定义域名,但仍然无法访问,可能是域名解析未生效或HTTPS配置有问题。
Content-Type
为正确的MIME类型。通过以上步骤,您应该能够解决视频外链只能下载而无法在线播放的问题。如果问题仍未解决,请提供更多详细信息以便进一步排查。