赞片CMSOSS加速
学完这篇,你能把赞片CMS的封面图、截图、播放资源全部搬到对象存储并挂上 CDN,让站点打开更快、服务器带宽不再被图片吃满。
第一步:开通 OSS 并建好 Bucket
这一步的目标是拿到三样东西:Bucket 名称、Endpoint、AccessKey。登录阿里云,进入「对象存储 OSS」控制台,点「创建 Bucket」,地域选离你服务器最近的一个(服务器在杭州就选 oss-cn-hangzhou),读写权限选「公共读」,其余保持默认后确定。
然后点右上角头像 →「AccessKey 管理」→「开始使用子用户 AccessKey」,创建用户时勾选「编程访问」,权限只给 AliyunOSSFullAccess,或者自定义一条只允许该 Bucket 读写的策略。保存生成的 AccessKey ID 和 AccessKey Secret,Secret 只显示一次,先复制到记事本。
注意:不要用主账号 AccessKey,一旦泄露等于整个阿里云账号被人拿走;Bucket 选「公共读」是为了前台图片能直接打开,如果你要做私有签名访问,得在 CMS 里单独配置,不能只靠这一步。
第二步:在赞片CMS后台填存储配置
这一步做完,后台上传的附件会直接进 OSS,不再占用服务器硬盘。登录赞片CMS后台(默认入口 /admin.php),进入「系统」→「存储设置」(部分版本叫「附件配置」或「云端存储」),把存储方式从「本地」切换到「阿里云 OSS」,然后填:
- AccessKey ID / AccessKey Secret:上一步保存的两串
- Bucket 名称:只填名字,不要带 .oss-cn-xxx.aliyuncs.com 后缀
- Endpoint:填外网地址,例如 oss-cn-hangzhou.aliyuncs.com
- 访问域名:填你绑定的自定义域名,没有就先填 https://你的bucket名.oss-cn-hangzhou.aliyuncs.com
保存后回到「附件管理」,随便传一张图测试,看返回的地址是不是 OSS 域名。
注意:Endpoint 填成内网地址(带 -internal 的那种)后台能上传成功,但前台用户打不开图片,这是最常见的坑。另外不同版本的赞片CMS菜单叫法略有差异,找不到「存储设置」就在后台顶部搜索框输入「OSS」。
第三步:配 CORS 和防盗链
这一步防的是「图片裂图」和「流量被盗刷」。进 OSS 控制台 → 你的 Bucket →「数据安全」→「跨域设置」,创建规则:来源填 (或你的主域名),允许方法勾 GET、POST、PUT、HEAD,允许 Headers 填 。接着在同页面的「防盗链」,把 Referer 白名单设成你的主域名,并勾选「允许空 Referer」,否则部分播放器和 App 请求会直接 403。
第四步:绑域名 + CDN 加速
这一步才让资源从离用户最近的节点出去。OSS 里进「传输管理」→「域名管理」→「绑定自定义域名」,比如 static.你的域名.com;再到阿里云 CDN 控制台「域名管理」→「添加域名」,加速域名填 static.你的域名.com,源站类型选「OSS 域名」,选中对应的 Bucket。保存后把 CDN 给出的 CNAME 记录添加到你的 DNS 解析里,等待生效。
HTTPS:在 CDN 域名详情页的「HTTPS 配置」里上传证书,或申请一张免费证书。
注意:CDN 缓存规则建议静态资源设 30 天、HTML 不缓存。如果你在 OSS 里覆盖了同名文件,必须去 CDN 控制台「刷新缓存」,否则用户看到的还是旧图。
第五步:迁移已有附件
之前存在服务器上的老图片不会自动搬过去。用 OSS Browser 客户端(图形界面,填 AccessKey 后直接拖拽上传)或 ossutil 命令行,把 upload/ 目录整体上传到 Bucket,保持目录结构不变,然后回 CMS 后台把老数据的域名批量替换成新域名。
第六步:验证效果
清空 CMS 后台缓存,前台刷新页面,按 F12 打开 Network 面板,看图片和资源的 Request URL 是否已经是 static.你的域名.com,响应头里出现 x-cache: HIT 就说明命中 CDN 了。
小结
- Bucket 建好、权限设公共读,密钥务必用 RAM 子账号而不是主账号
- CMS 后台只填 Bucket 名,Endpoint 必须是外网地址
- CORS 与防盗链没配好,就是图片裂图和 403 的根源
- 绑自定义域名 + CDN + HTTPS 才算真正加速,改文件记得刷新缓存
- 老附件用 OSS Browser 迁移,再批量替换数据库里的旧域名
原文链接:https://www.gj0.com/thread-587.html
转载请注明出处并保留本声明;内容仅代表作者观点,与本站立场无关。若本文涉嫌侵权,请联系本站处理。