XiunoBBS 七牛上传插件

   这几天抽着闲暇时间搞了一个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');

Centos利用qshell自动备份程序上传到七牛云

安装qshell   cd /root wget  http://devtools.qiniu.com/qshell-v2.1.8.zip unzip qshell-v.2.1.8.zip mkdir tool mv qshell_linux_x64 ./tool/qshell   2.添加全局访问   vim ~/.bashrc 插入   export PATH=$PATH:/root/tool  3. 编写压缩备份脚本  vim folderback.sh #!/bin/sh BACK_DIR="/home/repository/programbackup/"   #压缩目录 BACK_TARGET="/home/repository/nongwanyun/"   #目标目录 DATE=`date +%F` zip -rP 密码 $BACK_DIR"nongwanyun_back_"$DATE.zip $BACK_TARGET chmod +x folderback.sh 4. 编写七牛云配置文件  cd /root/tool/ mkdir conf cd conf touch qshell.conf vim qshell.conf #输入  {    "src_dir"            :   "/home/repository/programbackup", #要备份的目录    "bucket"             :   "backup",    "key_prefix"         :   "nongwanyun/",    "access_key"         :   "七牛ak",    "secret_key"         :   "七牛sk",    "up_host"            :   "",    "ignore_dir"         :   false,    "overwrite"          :   false,    "check_exists"       :   false,    "check_hash"         :   false,    "check_size"         :   false,    "rescan_local"       :   true,    "skip_file_prefixes" :   "test,demo,",    "skip_path_prefixes" :   "hello/,temp/",    "skip_fixed_strings" :   ".svn,.git",    "skip_suffixes"      :   ".DS_Store,.exe",    "log_file"           :   "upload.log",    "log_level"          :   "info",    "log_rotate"         :   1,    "log_stdout"         :   false } 5.编写qshell上传脚本 cd /root touch folderupload.sh vim folderupload.sh  #插入  #!/bin/sh … Read more