利用 CloudFlare 的 Workers 创建无限的免费图床
免费图床开源项目:【链接直达】
优点
- 无限图片储存数量,你可以上传不限数量的图片
- 无需购买服务器,托管于Cloudflare的网络上,当使用量不超过Cloudflare的免费额度时,完全免费
- 无需购买域名,可以使用Cloudflare Pages提供的*.pages.dev的免费二级域名,同时也支持绑定自定义域名
- 支持图片审查API,可根据需要开启,开启后不良图片将自动屏蔽,不再加载
- 支持后台图片管理,日志管理,查看访问前20的Referer、IP、img,可以对上传的图片进行在线预览,添加白名单,黑名单等操作

利用Cloudflare pages部署
- 点击Use this template按钮创建一个新的代码库。
- 登录到Cloudflare控制台.
- 在帐户主页中,选择
pages>Create a project>Connect to Git - 选择你创建的项目存储库,在
Set up builds and deployments部分中,Framework preset(框架)选Next.js即可。
![图片[3]-利用 CF 的 Workers 创建无限的免费图床!](/img/cloudflare/6.webp)
点击
Save and Deploy部署 。设置环境变量&开启图片管理功能
- 创建D1数据库 如图
![图片[4]-利用 CF 的 Workers 创建无限的免费图床!](/img/cloudflare/7.webp)
![图片[5]-利用 CF 的 Workers 创建无限的免费图床!](/img/cloudflare/8.webp)
执行sql命令创建表(在控制台输入框粘贴下面语句执行即可)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35DROP 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
);
设置兼容性标志,前往后台依次点击
设置->函数->兼容性标志->配置生产兼容性标志填写nodejs_compat
![图片[6]-利用 CF 的 Workers 创建无限的免费图床!](/img/cloudflare/9.webp)
- 前往后台点击
部署找到最新的一次部署点重试部署。
![图片[7]-利用 CF 的 Workers 创建无限的免费图床!](/img/cloudflare/10.webp)
环境变量
| 变量名称 | 值 | 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:AAxxxGKrn5 (从 @BotFather) | string |
| TG_CHAT_ID | -1234567 (频道的ID,TG Bot要是该频道或群组的管理员) | string |
TG_BOT_TOKEN
获取ID机器人 @VersaToolsBot
TG_CHAT_ID为目标对话的唯一标ID或目标频道的用户名(eg: @channelusername),当目标对话为个人或私有频道是只能是ID,当为公开频道或群组是可以为目标频道的用户名(eg:@channelusername)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 马斯克的赛博空间!
评论










