当您使用阿里云视频点播产品,通过浏览器访问某视频点播地址时,访问失败,出现类似如下错误提示。
<Error>
<Code>AccessDenied</Code>
<Message>Request has expired.</Message>
<RequestId>5DF332644EAA4931361D1E43</RequestId>
<HostId>
outin-2cc63XXXXXXe1c955c.oss-cn-shanghai.aliyuncs.com
</HostId>
<Expires>2019-12-13T06:37:22.000Z</Expires>
<ServerTime>2019-12-13T06:40:36.000Z</ServerTime>
</Error>
视频点播产品底层的存储依赖于OSS产品,如果没有添加视频点播域名,那么视频点播中的原始文件和转码文件地址,即流畅、标清、高清等视频都是使用类似于outin-6a6fd4XXXXXXe1a65b6.oss-cn-shanghai.aliyuncs.com
样式的OSS域名。
由于视频点播底层使用的OSS存储空间默认是私有权限,所以需要使用带签名参数的URL访问,即URL中需要携带Expires、Signature和AccessKey ID三个签名参数。但是该签名URL是存在过期时间,签名URL中的Expires字段是UNIX时间戳,标识的就是过期时间。综上所述,当以下条件成立时,你可能遇到上述问题:
您可以通过以下两种方案解决此问题:
当使用视频点播底层的OSS域名进行访问时,不会使用视频点播的视频分发加速功能。这种情况下,播放视频时没有加速效果。而且所产生的访问流量也无法使用视频点播的流量包抵扣,而是会产生外网流出流量的费用,因为点播流量包只能抵扣使用视频点播域名播放视频产生的流量。如果使用视频点播域名播放视频,视频点播域名播放视频是可以基于点播底层的CDN加速分发视频,并且产生的流出流量可以使用流量包来抵扣,因此推荐使用第一种方案。
添加视频点播域名前,需要注意如下几点信息:
参考以下步骤,添加视频点播域名。
说明:若存在相关视频点播域名,但是没有启用域名的情况,请启用该域名并确认CNAME记录添加成功即可。
在存储管理中将OSS权限修改成公共读,然后使用不带签名参数的URL进行访问,排除URL过期时间的影响。
说明:也可以选择公共读写权限,但是建议不要设置为公共读写,公共读写存在很高的安全风险。
https://outin-ebdeeXXXXXX3e008181.oss-cn-shanghai.aliyuncs.com/1db42d58e9694bf681d838f0ed9e8a9b/d0a5a57cb830412ca133607e486c-ld.mp4