帝国CMS阿里云OSS插件
WayneOSS插件实现帝国CMS附件自动同步阿里云OSS,支持上传/删除双向同步、缩略图自动处理、批量迁移本地附件至OSS。插件特点包括:附件直传OSS、CDN加速支持、本地备份可选、兼容帝国CMS7.5/8.0版本。安装需修改核心文件注入同步逻辑,配置OSS密钥后即可使用。注意事项包括需扩展titlepic字段长度以适应长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) 或更大。
详细可以参考:Wayne帝国CMS阿里云OSS插件
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)