Cloudflare Workers的多种玩法,搭建免费无限图床+导航站
简易导航站
下载Hugo并准备文件
打开Hugo,Github开源地址 https://github.com/gohugoio/hugo/releases/tag/v0.152.2,往下拉,右边有一个releases点它,然后继续往下拉。

找到自己架构对应的版本,一般电脑是Windows AMD64,其他架构就需要自己摸索啦。

下载下来的zip压缩包,用任意一个压缩文件管理器打开,里面就3个文件,把它解压到任意目录。在解压的目录下再新建一个文件夹,我这里叫dev,然后去WebStack的开源地址https://github.com/shenweiyan/WebStack-Hugo,点击右上角的绿色Code按钮,下面有个download zip,点一下下载。

下载zip包之后,把里面的examplesite拖放到刚刚创建的dev目录下。在dev目录下再新建一个themes文件夹,把压缩文件(包括第一层目录)全部解压到themes文件夹里,解压之后要把后缀“-main”删除。


回到刚才放Hugo的文件夹,把它移到自己的dev文件夹里。

打开dev文件夹,在顶部地址栏敲cmd,按回车打开命令提示符。

生成静态站点并部署到Cloudflare Pages
在命令行输入hugo生成静态站点文件,没报错且正常显示页数就成功了(笔者第一次报错是因为themes目录名没写对),静态文件就在public目录下啦。

我们回到Cloudflare,点击菜单栏中的“计算和AI”,再点击“Workers and Pages”,然后点右上角“创建应用程序”,选择“Pages”。


项目名可以随便写,上传文件这里如果直接上传,可能提示文件数量超限,其实给public文件夹打个zip包就能上传了(Cloudflare可以认zip包)。


上传成功后点“继续部署”,给自己的项目添加自定义域就能访问到了。

如何修改导航站内容
网址和其他一些配置文件主要在data文件夹里,站点的一些配置在根目录的hugo.toml中,想要改链接的图标在themes\WebStack-Hugo\static\assets\images里面,关于页面的内容在content\about.md里修改。

免费无限图床
准备代码仓库并部署到Cloudflare
打开GitHub开源链接:https://github.com/x-dr/telegraph-Image/tree/static,点击“Fork”,然后创建Fork。


我们回到Cloudflare,点击左边“计算和AI”下面的“Workers和Pages”,选择“创建Pages项目”,然后“导入现有的Git存储库”,选择刚刚Fork的telegraph-image,点下面的“开始设置”。


这里要注意框架预设,选择“Next.js”,然后“保存并部署”,这需要几分钟。此时先不要访问,还需要再做一点设置。


配置D1数据库和R2对象存储
接下来展开左侧的“存储和数据库”,找到“D1 SQL数据库”,然后创建数据库,名称可以自己填。

创建好之后,点击“控制台”,粘贴下面的代码,点击“执行”。
DROP TABLE IF EXISTS tgimglog;CREATE TABLE IF NOT EXISTS tgimglog ( `id` integer PRIMARY KEY NOT NULL, `url` text, `referer` text, `ip` varchar(255), `time` DATE);DROP TABLE IF EXISTS imginfo;CREATE TABLE IF NOT EXISTS imginfo ( `id` integer PRIMARY KEY NOT NULL, `url` text, `referer` text, `ip` varchar(255), `rating` text, `total` integer, `time` DATE);
数据库初始化完之后,再点击“存储和数据库”下的“R2对象存储”,点击右上角“创建存储桶”,自己取个名字,创建好之后返回项目。
请注意
进入R2对象存储页面需绑定支付方式,可以绑定自己的银联卡,要是没有的话,可以去小黄鱼上面买一张验证卡。

回到刚才的项目选择“设置”,点击“绑定”,然后添加刚才的两个绑定。

添加D1数据库,变量名称是大写的IMG,数据库选择刚刚创建的,保存。

重复添加R2存储桶,变量名称是大写的IMGRS,存储桶选择刚刚创建的,保存。

此时直接打开是打不开的,我们需要到 Pages 设置-运行时-兼容性标志,输入 nodejs_compat ,然后保存,回到首页,点击重试部署。


改用TG频道作为存储(突破R2限制)
接下来,你的图床就可以访问了,而且能用R2接口上传图片。要是你想不受R2限制,也可以跟我一样把上传接口改为TG频道。

首先添加机器人好友https://t.me/BotFather,点击下面的“Start”。


接下来会让你给机器人取个名字,最好取个少见点的,或者用密码生成器来取,直到显示“Done”,选中的就是你的机器人Token。

在你的频道或者群聊中邀请@get_id_bot(没有的话就创建一个),然后在聊天框里输入/my_id@get_id_bot,机器人会回复“channel info”下面的Chat ID。记得把你刚创建的机器人对应的用户名拉进群,然后设置成管理员。

测试TG机器人是否生效
在浏览器打开链接:https://api.telegram.org/bot[你的bot id]/sendMessage?chat_id=[在频道或者群组get id bot中获取的chat id]&text=1234,如果正常的话,会在你的群里发送“1234”消息。

把你的机器人Token和Chat ID填好,点击保存,然后回到部署页面,点击三个点,重新部署一下就行啦,这样就获得了完全免费且无限的图床。

开发者介绍的环境变量
以下是开发者介绍的一些环境变量:
| 变量名称 | 值 | type |
|---|---|---|
| PROXYALLIMG | 反向代理所有图片(默认为false) | boolean |
| BASIC_USER | 后台管理页面登录用户名称 | string |
| BASIC_PASS | 后台管理页面登录用户密码 | string |
| ENABLE_AUTH_API | 是否开启访客验证 (默认为false) | boolean |
| REGULAR_USER | 普通用户 (访客验证) | string |
| REGULAR_PASS | 普通用户密码 | string |
| ModerateContentApiKey | 审查图像内容的API key | string |
| RATINGAPI | 自建的鉴黄api | string |
| CUSTOM_DOMAIN | https://your-custom-domain.com (自定义加速域名) | string |
| TG_BOT_TOKEN | 123468 | string |
| TG_CHAT_ID | -1234567 (频道的ID,TG Bot要是该频道或群组的管理员) | string |
总结
这篇教程带大家用 Cloudflare 整了俩实用玩意儿: 先是简易导航站,从下载 Hugo、WebStack-Hugo 主题,到生成静态文件、部署到 Cloudflare Pages。 再是免费无限图床,先 Fork 代码仓库部署到 Pages,配好 D1 数据库和 R2 存储就能用,嫌 R2 麻烦的话,还能改用 Telegram 频道当存储,全程免费还不限量,还是很实用的。
部分信息可能已经过时