帝国CMS阿里云OSS插件
插件介绍
Wayne OSS插件,将网站附件上传至阿里云OSS对象存储,减轻服务器存储与带宽压力。上传、删除、缩略图生成全流程自动同步,本地附件一键批量迁移至OSS,无缝集成帝国CMS 7.5/8.0。
功能特点
- 附件直传OSS:后台上传、编辑器上传时直接写入OSS
- 删除双向同步:删除文章/附件时自动删除OSS对应文件,避免垃圾文件占用空间
- 缩略图自动同步:帝国CMS生成缩略图/水印图后自动同步至OSS,无需手动处理
- 批量迁移:分批将存量数据同步至OSS并替换数据库记录
- CDN加速:支持配置自定义CDN域名,全站附件地址自动替换为CDN地址
- 保留本地备份:可配置上传后是否保留本地文件,灵活切换
- 版本兼容:自动识别帝国CMS 7.5/8.0
- 连接测试:后台一键测试OSS连通性,验证配置正确性
- CDN域名:支持CDN域名加速
安装步骤
操作前请务必备份数据库及程序文件。
前置准备
-
阿里云 OSS 准备
- 已开通阿里云 OSS 服务,并创建好 Bucket
- 已获取 AccessKey ID 和 AccessKey Secret
- 如果需要 CDN 加速,已在阿里云 CDN 控制台配置好加速域名并指向 OSS Bucket
-
初始化
- 解压下载的 ZIP 包
- 将
e/extend/empire_oss/目录上传到站点的e/extend/下 - 手动访问
你的站点/e/extend/empire_oss/install.php进行安装 - 在
e/extend/empire_oss/core/config.php文件头部的$ak和$sk变量中填入 AccessKey ID 与 AccessKey Secret
覆盖安装
如果没有修改过zip包相关的程序文件,可以复制e覆盖即可
手动安装
如果修改过zip包相关的程序文件,需要对照以下修改点手动修改:
文件 1:e/class/connect.php
① 文件头部(第 214 行之前)— 插件自动载入
在 //--------------- 数据库 --------------- 之前,插入一行:
@include_once ECMS_PATH.'e/extend/empire_oss/index.php';
② DoTranFile 函数(第 5618 行)— 文件移动后同步至OSS
在函数末尾 return $r 之前(FileServer 块之后),插入:
$r = emposs_sync::file($r);
说明:
DoTranFile是帝国CMS核心上传函数,此处注入后可确保所有本地上传(编辑器上传、后台附件上传、批量上传)自动同步至OSS,无需在其他调用方重复注入。
③ DoTranUrl 函数(第 5833 行)— 远程下载文件后同步至OSS
在函数末尾 return $r 之前(FileServer 块之后),插入:
$r = emposs_sync::file($r);
④ ecom_DoTranFile 函数(第 5777 行)— 普通上传文件同步至OSS
在 return 1 之前,插入:
$ossR = array('yname' => $r['yname']);
emposs_sync::file($ossR);
⑤ DoDelFile 函数(第 5921 行)— 删除本地文件时同步删除OSS文件
在 DelFiletext($delfile) 之前,插入:
emposs_sync::delete($fspath['filepath'].$path.$r['filename']);
文件 2:e/class/gd.php
⑥ ResizeImage 函数(第 5 行)— OSS文件不存在时从OSS拉回本地
在函数体首行之后,插入:
if(!file_exists($big_image_name) && class_exists('emposs_sync')) {$big_image_name = emposs_sync::ensureLocal($big_image_name);}
⑦ ResizeImage 函数 — 生成的缩略图同步至OSS
该函数有两个正常出口(第 43 行和第 98 行),在每处 return $returnr 之前,分别插入:
if(class_exists('emposs_sync')){$__r=emposs_sync::file(array('yname'=>$new_name.$func_exname));if(!empty($__r['url'])){$returnr['oss_url']=$__r['url'];}}
文件 3:e/class/functions.php
⑧ GetFpicToTpic 函数(第 1397 行)— 标题图片URL替换为OSS/CDN地址
在“缩略图”分支中 $firsttitlepic=$fspath['fileurl'].$rpath."small".$insertfile.$sfiler['filetype']; 之后,插入:
if(!empty($sfiler['oss_url']))
{
$firsttitlepic=$sfiler['oss_url'];
}
在“非缩略图”分支中 $firsttitlepic=$fspath['fileurl'].$rpath.$picr['filename']; 之后,插入:
$firsttitlepic = emposs_sync::ossUrl($firsttitlepic);
修改完成后,进入帝国CMS后台 → 插件管理 → Wayne OSS插件,完成配置即可使用。
配置步骤
-
进入后台 → 插件 → Wayne OSS插件
-
填写阿里云OSS参数:
配置项 说明 启用插件 勾选后生效 OSS服务商 选择"阿里云OSS" Bucket OSS Bucket名称 Endpoint Endpoint域名 CDN域名 可选 CName绑定 Endpoint为自定义域名时勾选 保留本地备份 勾选后上传不会删除本地文件 -
点击 测试连接 验证配置是否正确
-
点击 保存配置
-
(可选)进入 批量迁移,将存量本地附件迁移至OSS
插件截图

卸载
进入后台 → 插件 → Wayne OSS插件 → 点击 卸载插件
注意事项
文章标题图 titlepic 字段长度只有 varchar(120),如果OSS地址比较长,修改数据库字段长度,将 titlepic 字段从 varchar(120) 改为 varchar(255) 或更大。
帝国CMS插件
未找到合适的帝国 CMS 成品插件?
如有定制需求,或是想优化现有插件功能,欢迎随时联系沟通。
微信
QQ
15年开发经验
自己做过站长,深知站长痛点
独立开发
自己编码、测试、维护,不是二道贩子
持续迭代
根据用户真实反馈持续优化
代码透明
核心逻辑清晰,不加密、不混淆
售后保障
提供安装指导和技术支持,随时响应
联系方式
微信 / QQ 即时沟通