XiunoBBS 七牛上传插件使用教程 [复制链接]

moqu8 2020-7-13

2613 0
这几天抽着闲暇时间搞了一个bbs,刚开始本来想用discuz,无奈界面太丑,漏洞也多,之前在gitee上发现过一个不错对的开源轻论坛框架xiunobbs,就拿它来搞了。二次开发过程中有一个需求,我想把附件传到七牛,不保存在服务器上,这样能节省服务器带宽,xiuno插件市场提供了一个免费插件,但是可能跟版本相关,已经不能用了,所以就自己弄了一个,今天就免费分享给大家。
安装方式是首先把插件adam_qiniu拖放到plugins文件夹下,然后登陆xiuno后台插件,本地插件,安装即可,在设置里面设置上七牛云的ak,sk,附件上传地址,bucket即可。
image.png
安装后上传的附件,不会再保存在upload目录下,上传到七牛后,会自动删除本地文件,这里有一个问题,附件下载的时候会寻找本地文件,没有的话会报attach_not_exist错误,然而本地附件已经被删除了,所以这里需要屏蔽到这块逻辑,在route/attach.php文件下大概131行,备注掉如下代码 :

[tr=none ][/tr]
1

//!is_file($attachpath)AND message(-1, lang('attach_not_exists'));

在model/attach.func.php文件插入

[tr=none ][/tr]
1

// hook attach_assoc_post_middle.php

源码上下文这样:

[tr=none ][/tr]
1

2

3

4

5

// 插入后,进行关联
$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方式。
总结一下安装和配置步骤:

  1. 安装adam_qiniu
  2. 配置ak,sk,上传url,bucket
  3. 备注掉 route/attach.php 131行代码
  4. model/attach.func.php 234行插入 // hook attach_assoc_post_middle.php


如果想恢复本地存储,卸载插件,然后取消上面备注掉的代码即可
下载地址:




PS:关于安装插件后无法卸载问题,取消备注 view/js/bbs.js第124行
//window.location = jthis.attr('href');
最新回复 (0)
返回
支持中心
邮箱:winkill2012@qqcom
新站优化中!部分功能尚未完善,敬请谅解!
支持中心