目前公司游戏客户端资源存放在阿里云oss上,通过配置cdn回源oss实现提高资源访问的速度,安全性,节约带宽,增加用户体验,整个原理和访问链路是这样的:
- 用户通过浏览器或其他客户端发起访问,请求到达CDN 节点。
- CDN 节点检查本地缓存,如果缓存命中,则直接返回缓存内容给用户,否则进行回源请求。
- 回源请求被发送到您配置的源站地址,即阿里云 OSS。
- 阿里云 OSS 接收到回源请求后,根据请求中的信息获取相应的资源,并将资源返回给 CDN 节点。
- CDN 节点收到响应后,将资源缓存到本地,并将资源返回给用户。
但是现在遇到一个问题因为和业务没有沟通好,导致业务方安装包中引用的一部分客户端资源链接是oss的链接(xxx.oss-cn-hangzhou.aliyuncs.com/dl/video/xxx.mp4),这样访问虽然不会出现问题,但是也会造成部分流量浪费,因为oss流量进出也是额外收费的,为了解决流量访问直接到oss,而不是通过cdn的方式访问所造成的流量滥用情况,我们可以做bucket授权策略,当然整个前提是和业务提前沟通好再这么做
一,打开bucket列表
二,找到对你需要修改的项目bucket,点击进入,在左边侧栏找到权限控制功能页,下翻后展示Bucket授权策略这么个选项,点击进入
三,点新增授权,将cdn回源ip列表都添加到访问白名单上去,整个回源ip列表需要你和cdn服务商要才有
四,新增授权,公司ip添加到访问白名单上去,并且授权操作给读写,当然这个权限的颗粒度可以继续给详细,授权操作项又高级设置可以选择的
整个测试过程
第一步:先将第3步骤的策略七牛云cdn回源ip列表添加上去,然后用公司网访问oss域名资源路径http://xxxx.oss-cn-hangzhou.aliyuncs.com/API.py,不可访问则表明策略生效
第二步:将第4步骤的策略公司ip添加上去,然后用公司访问访问oss域名资源路径http://xxxx.oss-cn-hangzhou.aliyuncs.com/API.py,可以访问则表明策略生效
第三步:用阿里云api方式上传文件到这个bucket上,然后用cdn域名访问刚上传的资源https://xxxx.xxxx.cn/API.py,可以访问则表明策略生效
第四步:不用公司的网,直接访问oss域名资源路径http://xxx.oss-cn-hangzhou.aliyuncs.com/API.py,不可访问则表明整个策略已经生效了