欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

dede 七牛云存储 七牛创建空间 有大用 有大大用

dede后台编辑器集成七牛云存储

工具/原料

 
  • dedecms系统
  • 七牛云存储

方法/步骤

 
  1. 注册并登陆七牛,新建空间,并绑定域名(注意:域名需通过ICP备案才能使用七牛云存储)。如图:

    dede后台编辑器集成七牛云存储
  2. 到七牛开发者中心,下载到php版本的七牛sdk。如图:

    dede后台编辑器集成七牛云存储
  3. 把下载好的php七牛sdk放入dede根目录的include文件夹。如图:

    dede后台编辑器集成七牛云存储
  4. 打开/include/dialog/select_images.php文件,在里面找到如下代码:

     

     

     

     

    $dh = dir($inpath);

    在其下面添加下面这句代码:

    $qiniudomain = '这里填入你绑定的七牛云存储域名';

    如图:

    dede后台编辑器集成七牛云存储
  5. 然后在里面查找如下代码:

    $reurl = $reurl;

    全部替换为如下代码

    $reurl = $qiniudomain.$reurl;

  6. 修改完成后再打开/include/dialog/select_images_post.php文件,在里面找到下面这句代码:

    $info = '';

    //上传到七牛云存储开始

    require_once(dirname(__FILE__)."/../qiniu/io.php");

    require_once(dirname(__FILE__)."/../qiniu/rs.php");

    $qiniupath = substr($activepath,1);

    $bucket = '你在七牛新建的云空间名';

    $qiniudomain = '你绑定的七牛云存储域名';

    $key = $qiniupath."/".$filename;

    $client = new Qiniu_MacHttpClient(null);

    $putPolicy = new Qiniu_RS_PutPolicy("$bucket:$key");

     

    $upToken = $putPolicy->Token(null);

     

    $putExtra = new Qiniu_PutExtra();

    $s = time();

    list($ret, $err) = Qiniu_PutFile($upToken, $key, $fullfilename, $putExtra);

    //上传到七牛云存储结束

    如图:

    dede后台编辑器集成七牛云存储
  7. 然后在里面找到如下代码:

    \''.$fileurl.'\'

    将其修改为如下代码:

    \''.$qiniudomain.$fileurl.'\'

    修改完成后保存即可,再去后台用编辑器上传图片,就会发现返回的图片路径都是七牛云存储的图片路径了,这样就实现了完美的整合。

  8. 最后需要注意的一个问题是我们需要在后台——系统——系统基本参数——其他选项里面将“远程图片本地化”设置为否,不然我们用的七牛的路径就会全部转换为服务器本地文件。如图:

    dede后台编辑器集成七牛云存储
    END
 
涉及到编辑器 应该还有一个
cfg_mb_rmdown

来自  http://jingyan.baidu.com/article/ea24bc39ea56acda62b33127.html


七牛云存储的镜像存储加速DEDECMS以及其他网站

听语音
  •  

  • |

  • 浏览:675

  • |

  • 更新:

  • |

  • 标签:硬件 

我的网站使用的是512内存、1M带宽的小型服务器,网页访问比较慢,于是琢磨着用七牛云存储进行加速,下面开始。

工具/原料

 
  • 七牛账号自行注册

方法/步骤

 
  1. 1

    新建一个空间,点击空间设置>镜像存储>一键加速网站

    七牛云存储的镜像存储加速DEDECMS以及其他网站
  2. 2

    填入你的网站地址,在配置搜索引擎robots.txt栏目下点击“了解更多”,下载里面提供的robots模板文件,返回设置页面,点击确定加速。

    七牛云存储的镜像存储加速DEDECMS以及其他网站
  3. 3

    将第二步下载的robots.txt上传到本空间根目录。

  4. 4

    修改网站的模板文件,在所有图片、Flash的相对路径前面添加本空间二级域名地址(即:空间设置>域名设置>默认域名里面显示的地址)。

    例如:<img src="[field:litpic /]" />

    加速后修改成<img src="http://XXX.qiniudn.com[field:litpic /]" />

  5. 5

    文章页面的图片可以通过添加JS代码实现加速,代码如下:

    (见附图)

    将viewbox_content替换成网页模板中包含正文内容的DIV的ID,将JS代码插入到正文内容后面。

    七牛云存储的镜像存储加速DEDECMS以及其他网站
  6. 6

    当网站访问http://XXX.qiniudn.com[field:litpic /]的时候,七牛会自动获取你网站上[field:litpic /]对应的文件,并缓存在云空间,提供加速访问,就这样。

    END
 
来自  http://jingyan.baidu.com/article/5bbb5a1b11ec7813eba179ad.html


织梦DedeCMS编辑器整合七牛云存储实现文件上传同步云存储教程

 所属栏目:织梦技巧教程 来源:CMS资源网 内容发布:土匪
Dedecms_Faq官方群:217479292哪怕群里没有一个人鸟你,还有 群主,管理员,跟你一起!!

我们知道七牛云存储是目前国内最大的文件开放云存储平台,利用七牛云存储我们可以将自己网站需要发布的图片或者附件都上传到七牛云存储,然后通过云存储连接提供给网站用户下载,这样就可以大大减轻网站服务器的文件存储以及下载压力,同时降低网站服务器的带宽成本。

 

而目前织梦dedecms与七牛云存储的集成整合教程还是空白,下面CMS资源网就教大家如何将七牛云存储与织梦CMS默认的编辑器完美整合,通过编辑器上传图片或者附件能够完美同步上传到七牛云服务器,并返回图片或附件的链接直接使用。下面我们就开始整合吧:

 

 

 

第一步、注册七牛账号、创建云空间并获取AccessKey和SecretKey:

 


首先我们注册并登录七牛云存储的账号,请点击下面的地址注册:

 

https://portal.qiniu.com/signup?code=3lca3aazlg8y9

 

 


注册成功后七牛会提示我们完成一些必要的身份认证,完成认证后就能创建自己的云存储空间了,点击七牛用户首页上面的新建空间,如下图:

 

 

新建七牛云存储空间

 

 


然后输入自己的空间名称,下面的空间类型选择“公开空间”,然后点击创建即可,如下图:

 

输入七牛云存储空间名称

 

 

创建完成后在空间设置里面打开域名设置页面,自己可以自定义域名,也可以使用默认的域名,将自定义或者默认的域名复制出来。如下图:

 

 

将自定义或者默认的域名复制出来

 


点击导航最右边的“账号”,再点击左边的“密钥”菜单,将里面的AccessKey和SecretKey复制出来。如下图:

 

 

获取七牛的AccessKey和SecretKey

 


这些数据都复制出来之后我们就可以开始进行下一步了。

 

 

 


第二步、集成七牛SDK

 

 

 

集成七牛SDK很简单,因为我们已经将SDK都是直接做好了,大家下载下面的SDK压缩包,将压缩包里面的qiniu文件夹解压出来,打开里面的conf.php文件,将刚刚复制的AccessKey和SecretKey分别填进去!

 

保存后将整个qiniu文件夹上传到织梦include目录下即可完成SDK的集成安装!

 

SDK压缩包下载地址:http://files.dedejs.com/files/soft/150807/qiniu-sdk.rar

 


集成七牛SDK之后就可以进行下一步了。

 

 

 

 


第三步、修改织梦CMS图片附件上传程序实现同步上传七牛云存储

 

 

 

织梦默认的编辑器有图片上传、多媒体文件上传以及附件上传,因为时间关系,我们仅以图片上传为例来讲解,多媒体以及附件的上传修改都是差不多的,大家自行修改即可。

 

 

首先打开/include/dialog/select_images.php文件,在里面找到如下代码:

 

 

1$dh = dir($inpath);

 

在其下面添加下面这句代码:

 

 

1$qiniudomain = '七牛云存储域名';

 


注意:将里面的“七牛云存储域名”替换为刚刚第一步里面复制的域名。

 


然后在里面查找如下代码:

 

 

1$reurl = $reurl;

 

全部替换为如下代码

 

 

1$reurl = $qiniudomain.$reurl;

 

 

 

修改完成后再打开/include/dialog/select_images_post.php文件,在里面找到下面这句代码:

 

$info = '';

 

在其上面 添加如下代码:

 

 

01//上传到七牛云存储start   by CMS资源网www.dedejs.com02require_once(dirname(__FILE__)."/../qiniu/io.php");03require_once(dirname(__FILE__)."/../qiniu/rs.php");04$qiniupath = substr($activepath,1);05$bucket = '云空间名';06$qiniudomain = '七牛云存储域名';07$key = $qiniupath."/".$filename;08$client = new Qiniu_MacHttpClient(null);09$putPolicy = new Qiniu_RS_PutPolicy("$bucket:$key");10 11$upToken = $putPolicy->Token(null);12 13$putExtra = new Qiniu_PutExtra();14$s = time();15list($ret, $err) = Qiniu_PutFile($upToken, $key, $fullfilename, $putExtra);16//上传到七牛云存储end

 


注意:将里面的“云空间名”修改为刚刚创建的空间名称,“七牛云存储域名”替换为刚刚第一步里面复制的域名。

 

 

然后在里面找到如下代码:

 

 

1\''.$fileurl.'\'

 

将其修改为如下代码:

 

 

1\''.$qiniudomain.$fileurl.'\'

 


修改完成后保存即可,再去后台用编辑器上传图片,就会发现返回的图片路径都是七牛云存储的图片路径了,这样就实现了完美的整合,利用同样的修改方法,大家可以自己修改一下select_media.php、select_soft.php以及select_soft_post.php文件,这样就能实现图片、多媒体以及附件上传全部同步到七牛云存储了。

 

最后需要注意的一个问题是我们需要在后台——系统——系统基本参数——其他选项  里面将“远程图片本地化”设置为否,不然我们用的七牛的路径就会全部转换为服务器本地文件。

 

 

 

当然如果大家自己不想修改的话可以直接下载下面已经修改好了的文件压缩包,只不过大家需要将自己的云空间名以及七牛云空间的域名替换一下

 

修改好的文件压缩包下载地址:

http://files.dedejs.com/files/soft/150807/dialog.rar

 


注意:里面的文件都是GBK编码的,UTF-8编码的大家自行转换一下。

文章关键词:整合教程 DedeCMS编辑器 织梦整合七牛 织梦云存储 文件上传同步

 
 
 
网友评论
 
 
 
 
 
 
 
 
  •  

  •  
  •  

  •  

  •  

  •  

  •  

  • 评分:

 
 
 
  • 评论

 
9人参与,9条评论
  •  
    最新评论
2017年3月31日 12:54
  •  

  •  

  •  

  •  

美食桥 冒泡 [贵州省安顺市网友]

不可以用了,鉴定完毕

 回复   
2017年1月10日 23:01
  •  

  •  

  •  

  •  

忘忧草v5 潜水 [河南省信阳市网友]

这个是编辑器的上传,织梦图集上传的图片要如何修改呢?

 回复   
2016年7月9日 11:03
  •  

  •  

  •  

  •  

ityang 冒泡 [云南省网友]

如果支持把原来的图片也同步到七牛,我现在就开干

 回复   
2016年7月9日 10:59
  •  

  •  

  •  

  •  

ityang 冒泡 [云南省网友]

很不错的教程,不知道原来的图片支不支持同步到云存储,原来的图片我也想用云存储

 回复   
2016年6月30日 21:42
  •  

主题家居 冒泡 [湖南省衡阳市网友]

缩略图打不开啊?缩略图是绝对路径,安装了之后,多了个域名。。。

 回复   
2015年11月26日 16:38
  •  

  •  

  •  

  •  

Y 潜水 [安徽省合肥市网友]

dede本地缩略图想结合使用 怎么弄 dede不熟

 回复   
2015年11月26日 13:16
  •  

  •  

  •  

  •  

帅气的诚客 潜水 [海南省网友]

多图上传模式不行

 回复   
2015年8月28日 13:39CMS资源网 管理员
 
1qq用户b91df2ce [广东省东莞市网友]

如果使用百度编辑器是不是也是 可以呢? 缩略图是不是也保存在七牛呢?

百度编辑器有百度编辑器整合的教程,请看下面这篇文章
http://www.dedejs.com/html/article-940-1.html

 回复   
2015年8月26日 19:25qq用户b91df2ce 潜水 [广东省东莞市网友]

如果使用百度编辑器是不是也是 可以呢? 缩略图是不是也保存在七牛呢?


来自  http://www.dedejs.com/html/article-944-1.html

DEDEcms使用七牛云存储做图片附件服务器


灵感来源于:http://www.dedejs.com/html/article-944-1.html ,不知道什么原因,原文作者写的比较简单,甚至对数据库的修改都没有完善,这里发挥一下。

 

第一步,参考上述文章,注册七牛帐号,开通空间,将织梦的 "系统设置" "其它选项"“远程图片本地化”设置为并集成七牛的SDK。

 

第二步, 打开/include/dialog/select_images.php文件,在里面找到如下代码:

 

$dh = dir($inpath);
在下面添加:

 

$qiniudomain = '七牛云存储域名';
记得把“七牛云存储域名”改成你的七牛云存储地址。

 

 

然后再找到:

$reurl = $reurl;
所有的都替换为:

 

$reurl = $qiniudomain.$reurl;

第三步,再打开/include/dialog/select_images_post.php文件,在里面找到下面这句代码:

 

$info = '';
在其上面添加如下代码:

 

//上传到七牛云存储start
require_once(dirname(__FILE__)."/../qiniu/io.php");
require_once(dirname(__FILE__)."/../qiniu/rs.php");
$qiniupath = substr($activepath,1);
$bucket = '云空间名';
$qiniudomain = '七牛云存储域名';
$key = $qiniupath."/".$filename;
$client = new Qiniu_MacHttpClient(null);
$putPolicy = new Qiniu_RS_PutPolicy("$bucket:$key");

$upToken = $putPolicy->Token(null);

$putExtra = new Qiniu_PutExtra();
$s = time();
list($ret, $err) = Qiniu_PutFile($upToken, $key, $fullfilename, $putExtra);
//上传到七牛云存储end
注意:将里面的“云空间名”修改为刚刚创建的空间名称,“七牛云存储域名”替换为刚刚第一步里面复制的域名。

 

然后找到:

\''.$fileurl.'\'
替换成:

 

\''.$qiniudomain.$fileurl.'\'

还有,找到:

 

$dsql->ExecuteNoneQuery($inquery);
在他的上面找到:

 

'".$activepath."/".$filename."'
改为:

 

'".$qiniudomain.$activepath."/".$filename."'

否则数据库中的记录还是本地的,别的文章插入图片的时候引用的就是错的。

至此,上传文章图片的时候保存和引用的就全是云存储上的图片了!

 

还有人想把多媒体和文件等附件也保存到七牛云上,以文件上传为例,需要修改的是select_soft.php和select_soft_post.php文件,改法相同,唯一不同的是在最后查找:

$dsql->ExecuteNoneQuery($inquery);
在他的上面找的是:
'".$fullfileurl."'
改为:
'".$qiniudomain.$fullfileurl."'

 

多媒体文件修改的是select_media.php和select_media_post.php文件,没有media业务就没测试。

 

有人还想把文档的缩略图也保存到七牛上,缩略图因为牵扯到裁剪所以比文件复杂的多,需要修改的是以下文件。

打开/include/helpers/upload.helper.php文件,在里面找到下面这句代码:

 

$title = $filename.'.'.$file_sname;
在上面的“//保存信息到数据库”上面添加:

 

 

上传到七牛云存储start
require_once(dirname(__FILE__)."/../qiniu/io.php");
require_once(dirname(__FILE__)."/../qiniu/rs.php");
$qiniupath = substr($activepath,1);
$bucket = '云空间名';
$qiniudomain = '七牛云存储域名';
$key = preg_replace('/\//','',$fileurl,1);
$client = new Qiniu_MacHttpClient(null);
$putPolicy = new Qiniu_RS_PutPolicy("$bucket:$key");
$upToken = $putPolicy->Token(null);
$putExtra = new Qiniu_PutExtra();
$s = time();
list($ret, $err) = Qiniu_PutFile($upToken, $key, $cfg_basedir.$fileurl, $putExtra);
//上传到七牛云存储end
注意:这段代码与图片上传部分是不一样的,因为二者的源码文件编写的不一样。

 

在这段后面查找:

$dsql->ExecuteNoneQuery($inquery);
靠近他的上面找的是:
'$fileurl'
改为:
'$qiniudomain"."$fileurl'

 

然后在/dede/imagecut.php中找到:

 

if( empty($isupload) )
在他的上面“//如果从其它图中剪出, 保存附件信息”的上面添加:

 

 

//上传到七牛云存储start   by CMS资源网www.dedejs.com
require_once(dirname(__FILE__)."/../include/qiniu/io.php");
require_once(dirname(__FILE__)."/../include/qiniu/rs.php");
$qiniupath = substr($activepath,1);
$bucket = '云空间名';
$qiniudomain = '七牛云存储域名';
$key = preg_replace('/\//','',$ddpicok,1);;
$client = new Qiniu_MacHttpClient(null);
$putPolicy = new Qiniu_RS_PutPolicy("$bucket:$key");
$upToken = $putPolicy->Token(null);
$putExtra = new Qiniu_PutExtra();
$s = time();
list($ret, $err) = Qiniu_PutFile($upToken, $key, $ddpicokurl, $putExtra);
//上传到七牛云存储end
注意:这里又与upload.helper.php中的不一样,老老实实复制吧

 


然后在它的下面找到:

 

'$ddpicok','$ddpicok'
替换为:

 

 

'$ddpicok','$qiniudomain"."$ddpicok'

找到:

 

ReturnImg("<?php echo $ddpicok; ?>");
替换为:
ReturnImg("<?php echo $qiniudomain.$ddpicok; ?>");
这样才会返回云存储的图片地址到编辑框中。

 

 

总结

以上方法实现了DEDECmsv5.7与七牛云存储的结合,实现了文章图,缩略图和其他文件的云存储,但有两个问题没有解决:1,本地还是会有,只能隔一段时间手动删除了,如果嫌占地方的话;2、缩略图使用原图时,返回的地址还是本地的,解决方法就是:裁剪一次全图吧可怜。再有个小毛病就是数据库中记录的文件大小是未裁剪前的,目前没发现有什么影响。

 

附赠

经过这些改动,会员头像部分你会发现也自动同步到七牛云存储上了,只是引用的时候还是本地,所以我们更改一下member/edit_face.php,找到:

 

"UPDATE `#@__member` SET `face` = '$face' WHERE mid='{$cfg_ml->M_ID}' "
替换为:

 

 

"UPDATE `#@__member` SET `face` = '$qiniudomain"."$face' WHERE mid='{$cfg_ml->M_ID}' "

好了,会员的头像都会显示云存储上的图片,并且更新的时候会自动替换掉。

 

 

至于会员上传文档图片的改动,因为没有开所以没有测试,应该是在upload.helper.php的下半部分代码中,自己试试吧

 

 

 



 


普通分类: