全部产品

工作流输出文件的权限操作

更新时间:2018-12-05 16:30:08

1. 问题场景

视频点播工作流输出文件是存储在OSS中的,该资源可以通过OSS域名或者CDN域名对外访问。因此用户可以通过多种渠道控制输出媒体资源的访问权限。

2. 解决方案

输出媒体资源的权限控制包括三种:媒体资源发布状态、OSS权限控制、CDN权限控制。

2.1 媒体资源发布状态

输出媒体包括两种媒体状态,分别是未发布和已发布状态,如下图所示。其中未发布状态即表示该媒体资源在OSS中对应的Object ACL为私有,这种情况下该媒体资源访问是必须按照OSS的签名策略获取该资源的;而已发布状态则表示该资源会继承输出媒体Bucket的ACL读写权限,如果输出媒体Bucket这时为公共读或者公共读写则可以直接访问该资源。

1

用户在配置工作流中拓扑结构中的最后一项是发布节点,如下图。该节点即是控制输出媒体资源的发布状态的,如果是手动发布的话就需要用户在执行完成后手动通过控制台或者API/SDK发布该资源。如果选择的是自动发布的话就可以实现媒体资源的自动发布,用户不需在工作流执行完成后再自行操作。

2

2.2 OSS权限控制

OSS提供的安全防护功能包括读写ACL权限控制、Referer防盗链。读写ACL权限控制是指用户可以设置Bucket或者Object的读写权限为私有、公共读或者公共读写,当设置为私有时访问该Object是需要带OSS的签名才可以访问,并且该签名是有有效时间的,如何获取签名URL请参考【OSS sdk获取签名URL】。而公共读或者公共读写权限则可以直接根据object的key值访问即可,详细请参考【OSS读写权限控制】。Referer防盗链功能是根据来源请求的Referer头信息进行安全控制,防止资源被恶意盗链,详细请参考【OSS防盗链设置】。

2.3 CDN权限控制

CDN提供鉴权功能、Referer防盗链和IP黑名单的功能。其中鉴权功能也是添加有过期时间的参数进行安全防护,详细请参考【CDN鉴权设置】;防盗链的功能与上述OSS防盗链功能一致,详细请参考【CDN防盗链设置】;而IP黑名单则是可以限制特定的客户端IP访问资源,避免部分恶意IP请求CDN资源,详细请参考【CDN IP黑名单设置】。

3. 注意事项

  • 如果输出媒体的封装格式为m3u8格式,建议不要通过OSS的ACL读写权限为私有添加签名来控制。因为m3u8文件本身是TS文件的列表,当OSS设置为私有后是无法直接给m3u8文件中的TS列表添加对应的签名结果会导致访问异常。建议这种情况在OSS本身域名没有泄露出去的情况下可以设置为公共读,通过CDN的鉴权功能来进行访问权限。因为CDN的鉴权功能当m3u8鉴权正确后会自动给其中的TS列表也添加鉴权参数保证服务。

  • OSS的ACL读写权限控制包括Bucket权限控制和Object权限控制,默认情况下所有的Object权限将继承所在Bucket的权限控制,但是Object也可以设置自己的ACL权限,其设置方法可以参考:【Object ACL设置】;另外Object权限优先级会高于Bucket权限。