将discuz x2.5 附件移动到分布式文件系统上

简单可以使用discuz的 ftp存放附件,然后再通过同脚本同步到每个节点,这样是最简单的办法。下面修改是修改代码,直接将附件存放到MogileFS。

文件source\class\discuz\discuz_upload.php 为类discuz_upload 增加方法:save_to_remote()
比如我的:
function save_to_remote() {
$key=$this->attach["attachment"];

$source=$this->attach['tmp_name'];
if(!discuz_upload::is_upload_file($source)) {
$succeed = false;
}else{
//上传到远程mfs去
$mfs=$this->get_mfs();
$mfs->upload($key,$source);
$succeed=true;
}
$this->errorcode = 0;
if($succeed && $this->del_source==1) {
@unlink($source);
}

return $succeed;
}

get_mfs()是一个mfs类的工厂类方法,产生一个唯一的mfs连接类,修改save()方法将set_to_local()修改为set_to_remote(),这里key就是discuz生成的附件目录,这个类检查,创建附件目录方法可以直接返回true,在先端显示的时候加一个图片集群的domain,最后附件的url就是 domain+key.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值