我是怎样开发一款zblog应用的 - 腾讯云cos储存插件开发过程全解析

  说到zblog插件,首先肯定要有zblog,先下载安装zblog,在管理后台登陆上开发者账号(确保开发者模式为开启状态),并新增一个插件

  应用创建好了之后,我们在网站目录/zb_users/plugin下就能看到我们填写的插件id的文件夹名 

我是怎样开发一款zblog应用的 - 腾讯云cos储存插件开发过程全解析_第1张图片

  走到这里我们就要想这个插件需要调用到什么接口了,对了,附件是吧?到官方wiki找到相对应的接口列表:

我是怎样开发一款zblog应用的 - 腾讯云cos储存插件开发过程全解析_第2张图片


  打开应用下的include.php能看到已经有了三个方法UninstallPlugin_qcloud_cos,InstallPlugin_qcloud_cos和ActivePlugin_qcloud_cos,这里是卸载方法,安装方法和处理方法。从腾讯云的开发文档上我们可以看到是需要appid,secretid,secretkey,bucket,region,这几个参数,关于参数的获取方式我们在这里不说了,可以参考腾讯云cos开发文档:https://cloud.tencent.com/document/product/436/6052

  做一款应用首先是让用户不更改代码的情况下,能用上这款插件,这时候我们就需要做一个页面,让用户去填写这些信息。在这之前,要先整理下需要用户提供什么参数,初始化,放到安装方法里面,赋空值。

我是怎样开发一款zblog应用的 - 腾讯云cos储存插件开发过程全解析_第3张图片

  所以我就需要这样来写:

functionUninstallPlugin_qcloud_cos(){global$zbp;if(!$zbp->Config('qcloud_cos')->HasKey('versions')){        $zbp->Config('qcloud_cos')->versions ='1.0';        $zbp->Config('qcloud_cos')->appid ='';        $zbp->Config('qcloud_cos')->secretid ='';        $zbp->Config('qcloud_cos')->secretkey ='';        $zbp->Config('qcloud_cos')->bucket ='';        $zbp->Config('qcloud_cos')->savePath ='';        $zbp->SaveConfig('qcloud_cos');    }    $zbp->Config('qcloud_cos')->versions ='1.0';    $zbp->SaveConfig('qcloud_cos');}

  然后就剩下卸载的方法了,卸载的话我们不需要处理。看回我们刚刚查询到的系统接口,菜单我们是不需要的,则有3个方法需要我们来处理,所以要创建3个方法

functionqcloudCos_GetUrl(){}functionqcloudCos_SaveFile(){}functionqcloudCos_SaveFileBase64(){}

  最后将这三个方法钩上

functionActivePlugin_qcloud_cos(){    Add_Filter_Plugin('Filter_Plugin_Upload_Url','qcloudCos_GetUrl');    Add_Filter_Plugin('Filter_Plugin_Upload_SaveFile','qcloudCos_SaveFile');    Add_Filter_Plugin('Filter_Plugin_Upload_SaveBase64File','qcloudCos_SaveFileBase64');}functionqcloudCos_GetUrl(){}functionqcloudCos_SaveFile(){}functionqcloudCos_SaveFileBase64(){}


  勾上之后我们来测试一下

我是怎样开发一款zblog应用的 - 腾讯云cos储存插件开发过程全解析_第4张图片

  走到这里证明成功了,接下来可以像传统开发那样,去编写代码了。


  先用自己账号进行测试(我是直接引腾讯云的sdk)

functionqclouClient(){    $cosClient =newQcloud\Cos\Client(array('region'=>'ap-guangzhou','credentials'=>array('secretId'=>'COS_KEY','secretKey'=>'COS_SECRET')));return$cosClient;}functionqcloudCos_SaveFile($temp){try{        $result = qclouClient()->upload(            $bucket='testbucket-1252448703',            $key ='/111.txt',            $body = fopen($temp,'rb'),            $options =array("ACL"=>'private','CacheControl'=>'private'));        print_r($result);    }catch(\Exception$e) {echo"$e\n";    }}

  走到这里之后发现获取不到文件拓展名- -,无奈之下打开了zb_system/function/c_system_plugin.php去查

我是怎样开发一款zblog应用的 - 腾讯云cos储存插件开发过程全解析_第5张图片

  发现还有个this变量,打印出来看看是什么

functionqcloudCos_SaveFile($temp , $f){    print_r($f);}

我是怎样开发一款zblog应用的 - 腾讯云cos储存插件开发过程全解析_第6张图片

  很好,这样就万物具备了

  调用一下上传,看看会不会走到了catch,发现不会,代表上传成功。

我是怎样开发一款zblog应用的 - 腾讯云cos储存插件开发过程全解析_第7张图片

  接下来只要把配置页面和geturl补充了就完美收工了,可以在刚刚的f变量给多一个对象。

  来看看效果:

  base64的接口也是用相同的方式搞定,再把管理面板整理好,一个应用就出来了。

  文章来自廖梓旭个人博客

你可能感兴趣的:(我是怎样开发一款zblog应用的 - 腾讯云cos储存插件开发过程全解析)