最近搭建博客,发现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)。
2024-07-18T17:25:36.png

Access Key ID;Access Key Secret

在R2 概述 界面的右侧的 帐户详细信息 中的 管理 R2 API 令牌 进入新的界面,然后点击右上角 创建API令牌,接着在 权限 一栏最好选择 对象读和写,其他配置按照自己的需求选填。

2024-07-18T17:44:51.png

2024-07-18T17:46:31.png

2024-07-18T17:29:11.png

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

2024-07-18T17:30:19.png

Bucket

新建桶的名称

2024-07-18T17:37:09.png

访问域名

在选中桶之后,选中 设置 Tab下的 公开访问 项配置访问域名
2024-07-18T17:41:08.png

获取完这些配置之后,插件设置填写好,在附件上传文件时就会同步上传到CF R2啦!(本地会留一份备份)

结语

在研究腾讯云COS这个插件之后,也翻到Typecho有提供插件模板(https://github.com/typecho/plugin-"template"),以及其源代码下的 /var/Widget 目录下有许多 Handler 方法可以被插件复写,对于插件的开发还是很有价值的。

后续计划

  • 支持更多自定义配置项
  • 更新删除与本地配置同步
  • ...
最后修改:2024 年 07 月 20 日
如果觉得我的文章对你有用,请随意赞赏