最近搭建博客,发现Cloudflare R2的存储桶还不错,能够选择亚太地区,并且能够绑定自定义域名直链访问,同时每个月的免费额度还算够用,用来作为博客的图床还是很香的。但是网络上搜索没发现Typecho有相关的插件...看来只能自己写了。
对于好多年前接触过PHP的我来说,现在写还是稍显生疏,硬着头皮去网络上搜集Typecho插件的编写教程就开写了。(这里吐槽一下Typecho的文档是真的不全,官方的文档还是旧的...
于是边看教程边写,过了1个多小时硬是没憋出个屁来...后面灵光一闪想到用现成的开源上传文件到COS等插件魔改一番貌似可以,于是就开启魔改之旅。
查看腾讯云COS的插件的代码(https://github.com/Tencent-Cloud-Plugins/tencentcloud-typecho-plugin-cos)下来写的还是很规范并且注释还是挺详细的,短时间内写好这个插件没来得及配环境,就在这个博客服务器的面板对照COS的插件一边改一边debug,最终还写出来个1.0能用版本!
目前仅实现Typecho上传附件到本地同时上传到Cloudflare R2的功能,配置也相对简单。有其他需求有空再更新~
仓库地址
https://github.com/DeerShark/CloudflareR2Typecho
食用方法
下面是配置使用插件的用法
安装插件
在此Github仓库的 Release 板块下载最新版插件,解压到 /usr/plugins 目录下,在后台启用插件。
获取需要的配置
Account ID
在R2 概述 界面的右侧的 帐户详细信息 中的 【帐户ID】(Account ID)。
Access Key ID;Access Key Secret
在R2 概述 界面的右侧的 帐户详细信息 中的 管理 R2 API 令牌 进入新的界面,然后点击右上角 创建API令牌,接着在 权限 一栏最好选择 对象读和写,其他配置按照自己的需求选填。



生成完成之后复制 【访问密钥ID】(Access Key ID) 和 【机密访问密钥】(Access Key Secret)

Bucket
新建桶的名称

访问域名
在选中桶之后,选中 设置 Tab下的 公开访问 项配置访问域名
获取完这些配置之后,插件设置填写好,在附件上传文件时就会同步上传到CF R2啦!(本地会留一份备份)
结语
在研究腾讯云COS这个插件之后,也翻到Typecho有提供插件模板(https://github.com/typecho/plugin-"template"),以及其源代码下的 /var/Widget 目录下有许多 Handler 方法可以被插件复写,对于插件的开发还是很有价值的。
后续计划
- 支持更多自定义配置项
- 更新删除与本地配置同步
- ...