用Cloudflare和Telegram Bot搭建图床
本文最后更新于1 天前,其中的信息可能已经过时,如有错误请发送邮件到msydjt@msydjt.com

在网上看到别人博客的图片加载飞快,知道是图床的功劳后,自己也想搞一个。但服务器贵,免费图床又怕跑路,限制还多。其实,利用 Cloudflare 就能白嫖一个无限图床。今天我们就来动手试试,看下效果到底如何!

一、优点

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

二、利用 Cloudflare Pages 部署

  1. 打开上方Telegraph-Image项目链接,点击 Use this template 按钮创建一个新的代码库(Fork 到自己的 GitHub)。
  2. 登录到 Cloudflare 控制台。
  3. 在左侧菜单栏中,选择 计算 -> Workers 和 Pages,点击 创建项目 -> 连接到 Git,选择你刚才创建的存储库。
  4. 在 设置构建和部署 部分中:
    · 项目名称:填入你喜欢的名字(例如 photo,后续将部署到 photo-xxx.pages.dev)。
    · 生产分支:选 main。
    · 构建设置:框架预设 选择 Next.js 即可(构建命令和输出目录会自动填充,无需手动修改)。
  5. 点击 保存并部署。

三、设置环境变量 & 开启图片管理功能

· 创建 D1 数据库:在 Cloudflare 左侧菜单找到 存储和数据库 -> D1 SQL 数据库,创建一个新的数据库。
· 执行 SQL 命令创建表(在控制台输入框粘贴下面语句执行即可,两条命令分别单独执行):

CREATE TABLE IF NOT EXISTS tgimglog (
    `id` INTEGER PRIMARY KEY NOT NULL,
    `url` VARCHAR(255),
    `referer` VARCHAR(255),
    `ip` VARCHAR(255),
    `time` TEXT
);
CREATE TABLE IF NOT EXISTS imginfo (
    `id` INTEGER PRIMARY KEY NOT NULL,
    `url` VARCHAR(255),
    `referer` VARCHAR(255),
    `ip` VARCHAR(255),
    `rating` VARCHAR(255),
    `total` INTEGER,
    `time` TEXT
);

· 设置兼容性标志:前往后台依次点击 设置 -> 函数 -> 兼容性标志 -> 配置生产兼容性标志。
· 填写 nodejs_compat。
· 前往后台点击 部署,找到最新的一次部署点 重试部署。

四、环境变量

前往项目后台的 设置 -> 环境变量,根据需求添加以下变量:

变量名称 说明 类型
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 自定义加速域名 string
TG_BOT_TOKEN 123468:AAxxxGKrn5(从 @BotFather 获取) string
TG_CHAT_ID -1234567(频道的 ID,TG Bot 要是该频道或群组的管理员) string

五、TG_BOT_TOKEN 和 TG_CHAT_ID 获取

· TG_BOT_TOKEN:获取 ID 机器人 @VersaToolsBot。
· TG_CHAT_ID:为目标对话的唯一标 ID 或目标频道的用户名(eg: @channelusername)。当目标对话为个人或私有频道时只能是 ID,当为公开频道或群组时可以为目标频道的用户名(eg: @channelusername)。

六、最后

至此,一个免费的图床就搭好了。速度嘛,晚高峰也还行,至少比自己买小水管服务器舒服。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇