外链论坛

 找回密码
 立即注册
搜索
查看: 1|回复: 0

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

[复制链接]

2527

主题

144

回帖

9913万

积分

论坛元老

Rank: 8Rank: 8

积分
99130854
发表于 2 小时前 | 显示全部楼层 |阅读模式

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

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

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

打开应用下的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

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

因此我就需要这般来写:

function UninstallPlugin_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个办法

function qcloudCos_GetUrl(){}function qcloudCos_SaveFile(){}function qcloudCos_SaveFileBase64(){}

最后将这三个办法钩上

function ActivePlugin_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);}function qcloudCos_GetUrl(){}function qcloudCos_SaveFile(){}function qcloudCos_SaveFileBase64(){}

勾上之后咱们来测试一下

步行到这儿证明成功了,接下来能够像传统研发那样,去编写代码了。

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

function qclouClient(){ $cosClient = new Qcloud\Cos\Client(array(region => ap-guangzhou, credentials => array( secretId => COS_KEY, secretKey => COS_SECRET))); return $cosClient;}function qcloudCos_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去查

发掘还有个this变量,打印出来瞧瞧是什么

function qcloudCos_SaveFile($temp , $f){ print_r($f);}

很好,这般就万物具备了

调用一下上传,瞧瞧会不会步行到了catch,发掘不会,表率上传成功。

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

瞧瞧效果:

文案来自:liaozixu.com

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

站点统计|Archiver|手机版|小黑屋|外链论坛 ( 非经营性网站 )|网站地图

GMT+8, 2024-10-3 18:16 , Processed in 0.096069 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.