这几天抽着闲暇时间搞了一个bbs,刚开始本来想用discuz,无奈界面太丑,漏洞也多,之前在gitee上发现过一个不错对的开源轻论坛框架xiunobbs,就拿它来搞了。二次开发过程中有一个需求,我想把附件传到七牛,不保存在服务器上,这样能节省服务器带宽,xiuno插件市场提供了一个免费插件,但是可能跟版本相关,已经不能用了,所以就自己弄了一个,今天就免费分享给大家。
安装方式是首先把插件adam_qiniu拖放到plugins文件夹下,然后登陆xiuno后台插件,本地插件,安装即可,在设置里面设置上七牛云的ak,sk,附件上传地址,bucket即可。
安装后上传的附件,不会再保存在upload目录下,上传到七牛后,会自动删除本地文件,这里有一个问题,附件下载的时候会寻找本地文件,没有的话会报attach_not_exist错误,然而本地附件已经被删除了,所以这里需要屏蔽到这块逻辑,在route/attach.php文件下大概131行,备注掉如下代码 :
//!is_file($attachpath)AND message(-1, lang('attach_not_exists'));
在model/attach.func.php文件插入
// hook attach_assoc_post_middle.php
源码上下文这样:
// 插入后,进行关联 $aid = attach_create($arr); // hook attach_assoc_post_middle.php $post['message'] = str_replace($file['url'], $desturl, $post['message']); $post['message_fmt'] = str_replace($file['url'], $desturl, $post['message_fmt']);
本来想用hook方式解决这个问题,但是由于本人对框架还不是很熟悉,没有找到好的hook方式。
总结一下安装和配置步骤:
安装adam_qiniu
配置ak,sk,上传url,bucket
备注掉 route/attach.php 131行代码
model/attach.func.php 234行插入 // hook attach_assoc_post_middle.php
如果想恢复本地存储,卸载插件,然后取消上面备注掉的代码即可
下载地址:
https://github.com/adamin1990/adam_qiniu
https://gitee.com/adamin/adam_qiniu
PS:关于安装插件后无法卸载问题,取消备注 view/js/bbs.js第124行
//window.location = jthis.attr('href');
本文为Adamin90原创文章,转载无需和我联系,但请注明来自http://www.lixiaopeng.top
阿良良木历894:大佬 能帮我看一下这个问题吗?https://bbs.xiuno.com/thread-150637.htm
2019-04-09 14:21:14 回复
李聪17602338334:可以了!!但是删除帖子,七牛云里没有跟着删除!这个能解决吗?
2019-03-27 05:11:18 回复
李聪17602338334:配置好了,也没有生效!!!!
2019-03-26 07:05:33 回复
用户7005537656:楼主,配置好了,怎么没有生效呢,就是测试上传个附件,七牛云里没有这个文件
2019-03-23 15:05:58 回复