logo NodeSeekbeta

使用 Cloudflare R2自建图床

一、搭建前需要准备

1、Telegram 相关

  • Telegram Bot Token
  • Telegram 管理员 user_id

2、Cloudflare R2 相关

  • Cloudflare R2 Access Key
  • Cloudflare R2 Secret Key
  • R2 Bucket 名称
  • R2 绑定的自定义域名

3、项目地址

https://github.com/ATanZheng/tg-img-r2-bot

二、搭建步骤

1、Cloudflare R2 配置

1.1 创建 R2 存储桶

image

1.2 开启公共访问 URL

image

1.3 绑定自定义域名

(建议绑定一个 CDN 域名,如 img.xxx.com
image

1.4 创建 API Key

记录以下信息,后面会用到:

  • ACCOUNT_ID
  • ACCESS_KEY_ID
  • SECRET_ACCESS_KEY

image

Telegram 创建机器人步骤不再赘述,可自行搜索相关教程。


2、服务器部署 tg-img-r2-bot

2.1 拉取项目代码
git clone https://github.com/ATanZheng/tg-img-r2-bot.git
cd tg-img-r2-bot

2.2 配置 config.py
# ================= Telegram =================
TELEGRAM_BOT_TOKEN = "你的TelegramBotToken"

# 允许上传的 Telegram 用户 ID(管理员)
# 可填写一个或多个
ADMIN_USER_IDS = [
    123456789,   # 替换为你的 Telegram user_id
]

TELEGRAM_FILE_API = f"https://api.telegram.org/file/bot{TELEGRAM_BOT_TOKEN}"

# ================= Cloudflare R2 ===========
R2_ACCESS_KEY_ID = "你的R2AccessKey"
R2_SECRET_ACCESS_KEY = "你的R2SecretKey"
R2_ACCOUNT_ID = "你的CloudflareAccountID"
R2_BUCKET = "tg-img"

R2_ENDPOINT = f"https://{R2_ACCOUNT_ID}.r2.cloudflarestorage.com"

# ================= 对外访问 =================
PUBLIC_BASE_URL = "https://img.yourdomain.com"

注意:

  • ADMIN_USER_IDS 不正确机器人不会响应
  • PUBLIC_BASE_URL 必须与 R2 绑定的自定义域名一致

2.3 构建并运行
docker build -t tg-img-r2 .
docker-compose up -d

三、使用说明

部署完成后,直接在 Telegram 中向机器人发送图片,即可返回
Cloudflare R2 + 自定义域名的图片直链,可直接用于论坛 / 博客 / 图床。
image

四、总结

  • Telegram 直接上传图片
  • 自动存储到 Cloudflare R2
  • 返回 CDN 加速后的直链
  • 支持管理员权限,防止滥用
  • 成本低,速度快,适合自用图床

项目地址:

https://github.com/ATanZheng/tg-img-r2-bot

12
  • CF图床确实省钱省力,但晚高峰图根本打不开

  • 好帖

  • r2不敢用,怕被反撸了

  • @wolaile #1 现在还没有尝试,我设置的地区是亚太地区

  • @luoacc #5 应该选美西地区的,大陆访问cf cdn是连的北美边缘节点

  • 目前这个规则是只有tg管理员有权限上传图片,这个应该不会被薅吧,哈哈

  • tg机器人上传图片大小有限制

  • 自己应该是够用了

12

你好啊,陌生人!

我的朋友,看起来你是新来的,如果想参与到讨论中,点击下面的按钮!

📈用户数目📈

目前论坛共有43594位seeker

🎉欢迎新用户🎉