我是如何开发zblog应用的——腾讯云cos存储插件开发流程全解析
说起zblog插件,首先得有zblog。首先下载安装zblog,在管理后台登录开发者账号(确保开发者模式开启),添加新插件。
应用创建完成后,我们可以在网站目录/zbusers/plugin下看到我们填写的插件ID的文件夹名称。
![我是怎样开发一款zblog应用的-腾讯云cos储存插件开发过程全解析 我是怎样开发一款zblog应用的-腾讯云cos储存插件开发过程全解析](http://llq.jikedh.cn/wp-content/themes/onenav/images/t.png)
此时我们就要思考这个插件需要调用什么接口。顺便说一句,附件,对吗?去官方wiki找到对应的接口列表:
![我是怎样开发一款zblog应用的-腾讯云cos储存插件开发过程全解析 我是怎样开发一款zblog应用的-腾讯云cos储存插件开发过程全解析](http://llq.jikedh.cn/wp-content/themes/onenav/images/t.png)
打开应用下的include.php可以看到有3个方法
UninstallPluginqcloudcos、InstallPluginqcloudcos和ActivePluginqcloudcos,这里分别介绍卸载方法、安装方法和处理方法。从腾讯云的开发文档中可以看到,需要appid、secretid、secretkey、bucket、region。这里不讨论这些参数。这里不再详细介绍如何获取参数。可以参考腾讯云的cos开发文档:
https://cloud.tencent.com/document/product/436/6052
制作一个应用,首先要让用户能够在不改变代码的情况下使用这个插件。这时候我们就需要制作一个页面,让用户填写这些信息。在此之前,我们需要整理一下用户需要提供哪些参数,初始化它们,将它们放入安装方法中,并分配空值。
![我是怎样开发一款zblog应用的-腾讯云cos储存插件开发过程全解析 我是怎样开发一款zblog应用的-腾讯云cos储存插件开发过程全解析](http://llq.jikedh.cn/wp-content/themes/onenav/images/t.png)
所以我需要这样写:
functionUninstallPluginqcloudcos(){global$zbp;if(!$zbp->Config(‘qcloudcos’)->HasKey(‘versions’)){$zbp->Config(‘qcloudcos’)->versions’1.0′;$zbp->Config(‘qcloudcos’)->appid”;$zbp->Config(‘qcloudcos’)->secretid”;$zbp->Config(‘qcloudcos’)->secretkey”;$zbp->Config(‘qcloudcos’)->存储桶”;$zbp->Config(‘qcloudcos’)->savePath”;$zbp->SaveConfig(‘qcloudcos’);}$zbp->Config(‘qcloudcos’)->版本’1.0′;$zbp->SaveConfig(‘qcloudcos’);}
那么剩下的方法就是卸载了。如果您卸载了,我们不需要处理。回头看我们刚才查询的系统界面,我们不需要菜单,所以需要处理的方法有3个,所以我们需要创建3个方法。
functionqcloudCosGetUrl(){}functionqcloudCosSaveFile(){}functionqcloudCosSaveFileBase64(){}
最后连接这三个方法
functionActivePluginqcloudcos(){AddFilterPlugin(‘FilterPluginUploadUrl’,’qcloudCosGetUrl’);AddFilterPlugin(‘FilterPluginUploadSaveFile’,’qcloudCosSaveFile’);AddFilterPlugin(‘FilterPluginUploadSaveBase64File’,’qcloudCosSaveFileBase64′);}functionqcloudCosGetUrl(){}functionqcloudCosSaveFile(){}函数qcloudCosSaveFileBase64(){}
连接好后我们来测试一下
![我是怎样开发一款zblog应用的-腾讯云cos储存插件开发过程全解析 我是怎样开发一款zblog应用的-腾讯云cos储存插件开发过程全解析](http://llq.jikedh.cn/wp-content/themes/onenav/images/t.png)
事实证明,到达这里是成功的,然后您可以像传统开发一样编写代码。
首先用自己的账号测试一下(我直接引用了腾讯云的sdk)
functionqclouClient(){$cosClientnewQcloudCosClient(array(‘地区’>’ap-广州’,’凭证’>array(‘secretId’>’COSKEY’,’secretKey’>’COSSECRET’)));return$cosClient;}functionqcloudCosSaveFile($temp){try{$resultqclouClient()->upload($bucket’testbucket-1252448703′,$key’/111.txt’,$bodyfopen($temp,’rb’),$optionsarray(“ACL”>’private’,’CacheControl’>’private’));printr($result);}catch(Exception$e){回显”$e
“;}}
到这里后发现无法获取文件扩展名–,无奈之下打开了。
检查zbsystem/function/csystemplugin.php
![我是怎样开发一款zblog应用的-腾讯云cos储存插件开发过程全解析 我是怎样开发一款zblog应用的-腾讯云cos储存插件开发过程全解析](http://llq.jikedh.cn/wp-content/themes/onenav/images/t.png)
我发现还有一个this变量,打印出来看看是什么。
functionqcloudCosSaveFile($temp,$f){printr($f);}
![我是怎样开发一款zblog应用的-腾讯云cos储存插件开发过程全解析 我是怎样开发一款zblog应用的-腾讯云cos储存插件开发过程全解析](http://llq.jikedh.cn/wp-content/themes/onenav/images/t.png)
很好,现在一切都准备好了
调用upload来查看是否到达catch。如果没有,则说明上传成功。
![我是怎样开发一款zblog应用的-腾讯云cos储存插件开发过程全解析 我是怎样开发一款zblog应用的-腾讯云cos储存插件开发过程全解析](http://llq.jikedh.cn/wp-content/themes/onenav/images/t.png)
接下来,只需添加配置页面和geturl即可完成。您现在可以向f变量添加一个附加对象。
![我是怎样开发一款zblog应用的-腾讯云cos储存插件开发过程全解析 我是怎样开发一款zblog应用的-腾讯云cos储存插件开发过程全解析](http://llq.jikedh.cn/wp-content/themes/onenav/images/t.png)
我们来看看效果:
![我是怎样开发一款zblog应用的-腾讯云cos储存插件开发过程全解析 我是怎样开发一款zblog应用的-腾讯云cos储存插件开发过程全解析](http://llq.jikedh.cn/wp-content/themes/onenav/images/t.png)
文章来自:liaozixu.com