type
Post
status
Published
date
Feb 13, 2026
slug
imgbed2
summary
CloudFlare ImgBed 提供了丰富的功能特性,满足不同用户的需求
tags
cloudflare
category
部署教程
icon
password
网址
前期准备
在开始部署 CloudFlare ImgBed 之前,您需要根据要使用的存储渠道进行相应的准备工作。
1. 渠道说明
项目支持使用不同的存储渠道作为后端存储,每种渠道有不同的优缺点和限制,您可以根据自己的需求选择合适的渠道。
渠道类型 | 优点 | 限制 |
Telegram Bot | 完全免费、无限容量 | 大于20MB文件需分片存储 |
Cloudflare R2 | 无文件大小限制、企业级性能 | 超出10G免费额度后收费,需要绑定支付方式 |
S3 兼容存储 | 选择多样、价格灵活 | 根据服务商定价 |
Discord | 完全免费、简单易用 | 大于10MB文件需分片存储 |
HuggingFace | 完全免费、支持大文件直传 | 需要 HuggingFace 账号 |
2. Telegram Bot 渠道
2.1 获取 TG_BOT_TOKEN
- 在 Telegram 中搜索 @BotFather
- 发送
/newbot命令
- 按提示输入 Bot 名称和用户名
- 获得 Bot Token(格式:
123456789:ABCdefGHIjklMNOpqrsTUVwxyz)
2.2 获取 TG_CHAT_ID
- 创建一个新的 Telegram 频道(Channel)
- 将创建的 Bot 添加为频道管理员
- 给予 Bot 消息管理的权限
- 在频道中发送一条测试消息
- 向 @VersaToolsBot 转发这条消息
- 获得频道 ID(示例:
1001234567890)
注意
- 频道 ID 前面有 号时需要保留
- Bot 必须具有频道管理员权限
3. Cloudflare R2 渠道
3.1 创建 R2 存储桶
- 选择 "R2 存储对象"
- 点击 "创建存储桶"
- 输入存储桶名称(全局唯一)
- 选择存储区域
- 点击 "创建存储桶"
3.2 配置公开访问(可选)
如果需要启用图像审查功能:
- 进入创建的存储桶
- 选择 "Settings" → "Public access"
- 启用 "Allow Access" 或配置自定义域名
- 记录完整公开访问链接(如
https://your-bucket.r2.cloudflarestorage.com/)
4. S3 兼容存储
4.1 支持的服务商
服务商 | 地区 | 特点 |
Amazon S3 | 全球 | 最原始的 S3 服务 |
七牛云 | 中国 | 国内访问速度快 |
又拍云 | 中国 | CDN 加速 |
Backblaze B2 | 美国 | 价格便宜 |
Cloudflare R2 | 全球 | 与 Cloudflare 生态集成 |
MinIO | 全球 | 开源 S3 兼容存储 |
提示
以上为经过测试的 S3 兼容存储服务商,其他 S3 兼容服务商未经测试,有概率出现兼容问题。
4.2 需要准备的信息
S3_ACCESS_KEY_ID:访问密钥 ID
S3_SECRET_ACCESS_KEY:私有访问密钥
S3_BUCKET_NAME:存储桶名称
S3_ENDPOINT:服务端点 URL
S3_REGION:存储区域(可选)
5. Discord 渠道(由 @林酱 佬贡献)
5.1 创建 Discord Bot
- 点击 "New Application" 创建应用
- 进入 "Bot" 页面,点击 "Add Bot"
- 复制 Bot Token
5.2 获取 Channel ID
- 在 Discord 客户端中启用开发者模式(用户设置 → 高级 → 开发者模式)
- 创建一个用于存储文件的频道
- 右键点击频道,选择 "复制频道 ID"
- 将 Bot 添加到服务器并授予发送文件的权限
注意
- 普通用户文件大小限制为 10MB
- Nitro 用户文件大小限制为 25MB
- 需要确保 Bot 有发送消息和附件的权限
- Discord 官方有接口频率限制,不建议将此渠道用作大规模并发场景
6. HuggingFace 渠道(由 @林酱 佬贡献)
6.1 创建 HuggingFace 账号
- 访问 HuggingFace 并注册账号
6.2 获取 Access Token
- 登录后访问 Token 设置页面
- 点击 "New token" 创建新 Token
- 选择 "Write" 权限
- 复制生成的 Token
提示
HuggingFace 渠道支持大文件直传,推荐用于上传超过 20MB 的文件。
🚀 下一步
Cloudflare Pages 部署
Cloudflare Pages 是推荐的部署方式,提供免费托管、全球 CDN 加速和无需服务器维护的优势。
📂 第一步:Fork 项目
- 点击右上角的 "Fork" 按钮
- 选择您的 GitHub 账户
- 确认 Fork 完成
🏗️ 第二步:创建 Pages 项目
2.1 访问 Cloudflare Dashboard
- 选择左侧菜单的 "计算和AI" -> "Workers & Pages"
- 点击 "创建应用程序"
- 在最下方
Looking to deploy Pages?选择 "Get started"
- 在 "导入现有 Git 存储库" 处点击 "开始使用"


2.2 连接 GitHub 仓库
- 如果首次使用,需要授权 Cloudflare 访问 GitHub
- 选择您 Fork 的
CloudFlare-ImgBed仓库
- 点击 "开始设置"
2.3 配置项目设置
配置项 | 值 | 说明 |
项目名称 | cloudflare-imgbed(或自定义) | 项目标识符 |
生产分支 | main | 生产环境分支 |
构建命令 | npm install | 重要:v2.0 新构建命令 |
构建输出目录 | / | 保持默认 |

重要提醒
v2.0 版本的构建命令已变更为
npm install,请确保使用正确的构建命令。2.4 部署项目
- 点击 "保存并部署"
- 等待首次部署完成(约 2-3 分钟)
🗄️ 第三步:配置数据库
数据库用于存储文件元数据,是必需的组件,可选数据库为
KV 数据库和 D1 数据库。两者对比如下表所示,根据自己使用场景从其中选择一种配置即可。特点 | KV 数据库 | D1 数据库 |
读写性能 | 高 | 较低 |
免费额度 | 少 | 多 |
大文件上传 | 支持 | 不支持 |
重要提示
KV 数据库和 D1 数据库只需要配置其中一个即可,不需要同时配置两个!建议根据上表选择适合自己的数据库类型。
3.1 KV 数据库配置
创建 KV 命名空间
- 在 Cloudflare Dashboard 中选择 "存储和数据库"
- 点击 "Workers KV"
- 点击 "创建实例"
- 输入命名空间名称:
img_url(建议使用此名称)
- 点击 "创建"


绑定 KV 到项目
- 返回您的 Pages 项目
- 选择 "设置" → "绑定"
- 点击 "添加" → "KV 命名空间"
- 填写绑定信息:
- 变量名称:
img_url(必须是这个名称) - KV 命名空间:选择刚创建的命名空间
- 点击 "保存"
注意
绑定 KV 时,变量名称必须为
img_url,这是项目预设的变量名,填错会出现无法进入管理界面等情况。3.2 D1 数据库配置
创建 D1 数据库
- 在 Cloudflare Dashboard 中选择 "存储和数据库"
- 点击 "D1 SQL 数据库"
- 点击 "创建数据库"
- 输入数据库名称:
img_d1(建议使用此名称)
- 点击 "创建"
初始化 D1 数据库
- 创建完成后,点击进入数据库详情页
- 选择 "控制台" 选项卡
- 在 SQL 输入框中粘贴并执行注释区域以下的内容(见项目仓库)
- 点击 "执行"
绑定 D1 到项目
- 返回您的 Pages 项目
- 选择 "设置" → "绑定"
- 点击 "添加" → "D1 数据库"
- 填写绑定信息:
- 变量名称:
img_d1(必须是这个名称) - D1 数据库:选择刚创建的数据库
- 点击 "保存"
🔄 第四步:重新部署
绑定数据库后需要重新部署以生效:
- 进入项目的 "部署" 页面
- 找到最新的部署记录
- 点击右侧的 "..." 菜单
- 选择 "重试部署"
- 等待部署完成

🚀 下一步
🗂️ 存储渠道配置
部署完成后访问您的域名,进入管理后台配置存储渠道。
访问管理后台
访问
https://your-domain/dashboard提示
管理后台默认无需密码,登录后请及时设置管理员用户名和密码。
配置 Telegram 渠道
- 左上角菜单栏进入 "系统设置" → "上传设置"
- 找到 "Telegram 渠道配置"
- 点击 "添加渠道"
- 填入准备好的 Token 和 Chat ID:
- 渠道名称:自定义名称(如:主渠道)
- Bot Token:从 @BotFather 获得的 Token
- Chat ID:频道 ID(有号时需要保留)
- 代理 URL:(可选)自定义代理地址,用于代理 Telegram API 请求
- 启用状态:开启
- 点击 "保存设置"
关于代理配置
如果您的服务器无法直接访问 Telegram API,可以配置代理 URL。您可以使用 Cloudflare Worker 搭建简单的代理服务:
// worker.js
export default {
async fetch(request) {
const url = new URL(request.url);
const target = `https://api.telegram.org${url.pathname}${url.search}`;
const resp = await fetch(target, {
method: request.method,
headers: request.headers,
body: request.body,
redirect: 'follow'
});
return new Response(resp.body, {
status: resp.status,
headers: resp.headers
});
}
};部署此 Worker 后,将 Worker 地址填入代理 URL 字段即可。
配置 R2 渠道
服务器部署时默认添加了 Cloudflare R2 存储方式,以下步骤仅针对 Cloudflare 部署方式:
- 在项目设置中绑定 R2 存储桶:
- 选择 "设置" → "绑定"
- 添加 "R2 存储桶"
- 变量名称:
img_r2 - R2 存储桶:选择已创建的存储桶

- 在管理后台配置:
- 进入 "系统设置" → "上传设置"
- 配置 R2 渠道参数
- 如需图像审查,填入 R2 公开访问链接
提示
请注意Cloudflare R2 的免费额度限制,超过后可能会产生费用。

配置 S3 渠道
在管理后台的 S3 渠道配置中填入:
- Access Key ID:访问密钥 ID
- Secret Access Key:机密访问密钥
- Bucket Name:存储桶名称
- Endpoint:服务端点(完整 URL,如 https://s3.us-east-005.backblazeb2.com)
- PathStyle:路径样式(如需兼容旧 S3 版本,开启此选项)
- Region:存储区域(可选)
- CDN 域名:(可选)自定义 CDN 加速域名,设置后优先通过CDN读取文件
配置 Discord 渠道
在管理后台的 Discord 渠道配置中填入:
- 渠道名称:自定义名称
- Bot Token:Discord Bot Token
- Channel ID:Discord 频道 ID
- Is Nitro:是否为 Nitro 用户(Nitro 用户单文件限制为 25MB,普通用户为 10MB)
- 代理 URL:(可选)自定义代理地址
配置 HuggingFace 渠道
在管理后台的 HuggingFace 渠道配置中填入:
- 渠道名称:自定义名称
- Token:HuggingFace Access Token(从 https://huggingface.co/settings/tokens 获取)
- Repo:仓库名称(格式:username/repo-name,用户名须填写正确,会自动创建 dataset 类型仓库)
- Is Private:是否为私有仓库
提示
HuggingFace 渠道支持大文件直传,适合上传超过 20MB 的文件。对于大文件,系统会自动使用 LFS 协议进行分片上传。
🔒 安全设置
安全相关设置,在管理后台的 "系统设置" → "安全设置" 中配置
认证管理
- 用户端认证:用于 Web 端用户登录和 API 认证
- 管理端认证: 管理员用户名和密码,用于访问管理后台
上传管理
图像审查
审查渠道支持
nsfwjs 和 moderatecontent.com,可根据如下步骤自行配置。1.moderatecontent.com
- 注册并获取免费 API Key(目前已不再支持免费注册)
- 在管理后台 "系统设置" → "安全设置" 中填入 API Key
2.nsfwjs
- 使用 Docker 部署
nsfwjs审查服务
# 参考命令
docker run -d -p 127.0.0.1:5000:5000/tcp \
--env PORT=5000 \
--restart=always \
eugencepoi/nsfw_api:latest- 在管理后台 "系统设置" → "安全设置" 中填入审查服务地址,如
https://nsfwjs.your.domain
访问管理
- 域名过滤
- 放行域名:允许访问的域名列表(留空放行所有域名,否则需要手动添加图床自身域名)
- 白名单模式:启用后仅允许加入白名单的文件被访问
🌐 网页设置
前端网页相关设置,在管理后台的 "系统设置" → "网页设置" 中配置
字段名 | 用途 | 类型 | 内容规范 |
siteTitle | 网站标题 | 字符串 | 只支持 字符串类型,设置为你自定义的网站标题 |
siteIcon | 网站图标 | 字符串 | 只支持 字符串类型,设置为你自定义的网站图标链接 |
ownerName | 图床名称 | 字符串 | 只支持 字符串类型,设置为你自定义的图床名称(默认为Sanyue) |
logoUrl | 图床Logo | 字符串 | 只支持 字符串类型,设置为你自定义的图床Logo链接 |
logoLink | Logo跳转链接 | 字符串 | 只支持 字符串类型,设置为点击Logo时跳转的链接,留空则使用默认GitHub链接。仅对上传页面生效 |
bkInterval | 背景切换间隔 | 正整数 | 设置为背景图的轮播时间,默认 3000,单位ms。例如你希望10s切换一次,设置为10000即可。 |
bkOpacity | 背景图透明度 | (0,1]的浮点数 | 展示的背景图透明度,默认为 1。如果你觉得显示效果不佳,可以自定义,如0.8 |
urlPrefix | 默认 URL 前缀 | 字符串 | 只支持 字符串类型,设置为自定义的全局默认链接前缀,该前缀会覆盖原始默认前缀,但不会覆盖用户自定义的链接前缀 |
announcement | 公告 | 字符串 | 只支持 字符串类型,可以为 HTML 格式,设置为你自定义的公告内容(如有) |
defaultUploadChannel | 默认上传渠道 | 字符串 | 只支持 字符串类型,设置为你自定义的默认上传渠道,支持telegram(Telegram 渠道)、cfr2(Cloudflare R2)、s3(S3 渠道)、discord(Discord 渠道)和huggingface(HuggingFace 渠道) |
defaultChannelName | 默认渠道名称 | 字符串 | 只支持 字符串类型,指定默认使用的渠道名称,需先选择上传渠道。当同一渠道类型配置了多个渠道时,可通过此项指定默认使用哪个渠道 |
defaultUploadNameType | 默认命名方式 | 字符串 | 只支持 字符串类型,设置为你自定义的默认上传文件命名方式,支持default(默认)、index(仅前缀)、original(仅原名)和short(短链接) |
loginBkImg | 登录页背景图 | 列表/字符串 | 1、当字段类型为 列表时,列表中元素为需要添加到轮播列表中的图片链接(列表中只有一张图时即为固定背景),形如["1.jpg","2.jpg"]2、当字段类型为字符串时,目前仅支持字符串值为bing,设置为该值时启用bing随机图片轮播模式。 |
uploadBkImg | 上传页背景图 | 列表/字符串 | 同loginBkImg |
footerLink | 页脚传送门链接 | 字符串 | 只支持 字符串类型,设置为你自定义的传送地址(如个人博客链接) |
disableFooter | 隐藏页脚 | boolean | 支持 boolean类型,设为true时禁用页脚,默认false |
defaultConvertToWebp | 默认转换 WebP | boolean | 支持 boolean类型,设为true时默认开启 WebP 转换,默认false |
defaultCustomerCompress | 默认开启压缩 | boolean | 支持 boolean类型,设为true时默认开启客户端压缩,默认true |
defaultCompressBar | 默认压缩阈值 | 数字 | 图片大小超过此值将自动压缩,单位 MB,范围 1-20,默认 5 |
defaultCompressQuality | 默认期望大小 | 数字 | 压缩后图片大小期望值,单位 MB,范围 0.5-压缩阈值,默认 4 |
adminLoginBkImg | 管理页登录背景图 | 列表/字符串 | 同loginBkImg |
adminBkImg | 管理页背景图 | 列表/字符串 | 同loginBkImg |
🛠️ 其他设置
其他设置项,在管理后台的 "系统设置" → "其他设置" 中配置
远端遥测
便于开发者进行bug的捕捉和定位,但是过程中可能收集到访问链接、域名等信息,如您不愿意泄露类似信息给项目开发者,请在管理后台禁用此功能。
随机图像 API
- 目录:开放随机图权限的目录,默认为根目录,多个目录用逗号分隔;目录均采用绝对路径,例如
/img/cover,表示该目录及其所有子目录的文件可被随机图API访问。
访客图库
允许未登录用户访问指定目录的文件,可用于创建公开图库或相册展示。
- 启用公开浏览:开启或关闭公开浏览功能
- 允许访问的目录:开放公开访问权限的目录,多个目录用逗号分隔;目录均采用绝对路径(可不写开头的
/),例如/img/gallery,/img/wallpapers
提示
启用后,用户可通过
/browse/目录名 路径访问公开图库,例如 /browse/img/galleryCloudFlare API Token
正常情况下,因为CloudFlare CDN缓存的存在,在管理端进行删除、拉黑、加白名单等操作不会立即生效,需要等到缓存过期才能生效。为了让操作立即生效,建议设置此项,设置方式如下:
CF_ZONE_ID:绑定域名的 Cloudflare Zone ID

CF_EMAIL:Cloudflare 账户邮箱
CF_API_KEY:Cloudflare Global API Key

WebDAV
WebDAV 服务相关设置,详细介绍和使用方式请查看 API 文档。
- 启用 WebDAV 服务:开启或关闭 WebDAV 服务
- 用户名:WebDAV 登录用户名
- 密码:WebDAV 登录密码
- 上传渠道:通过 WebDAV 上传文件时使用的存储渠道,支持 Telegram、Cloudflare R2、S3、Discord、HuggingFace
- 指定渠道名:当选择的上传渠道有多个配置时,可指定具体使用哪个渠道名称进行上传
🔧 环境变量清单
注意
环境变量设置方式在 v2.0 版本后已废弃,以下配置请在管理后台进行。
基础认证配置
变量名 | 类型 | 必需 | 说明 | 示例值 |
BASIC_USER | string | 否 | 管理员用户名 | admin |
BASIC_PASS | string | 否 | 管理员密码 | your_secure_password |
AUTH_CODE | string | 否 | 上传认证码 | your_auth_code |
存储渠道配置
Telegram 渠道
变量名 | 类型 | 必需 | 说明 | 示例值 |
TG_BOT_TOKEN | string | 是 | Telegram Bot Token | 123456789:ABCdefGHI... |
TG_CHAT_ID | string | 是 | Telegram 频道 ID | -1001234567890 |
功能开关配置
变量名 | 类型 | 默认值 | 说明 |
AllowRandom | boolean | false | 启用随机图 API |
WhiteList_Mode | boolean | false | 启用白名单模式 |
disable_telemetry | boolean | false | 禁用遥测数据 |
安全配置
变量名 | 类型 | 说明 | 示例值 |
ALLOWED_DOMAINS | string | 允许访问的域名列表 | domain1.com,domain2.com |
ModerateContentApiKey | string | 图像内容审查 API Key | your_api_key |
CDN 缓存配置
变量名 | 类型 | 说明 | 用途 |
CF_ZONE_ID | string | Cloudflare Zone ID | 自动清除 CDN 缓存 |
CF_EMAIL | string | Cloudflare 账户邮箱 | 自动清除 CDN 缓存 |
CF_API_KEY | string | Cloudflare Global API Key | 自动清除 CDN 缓存 |
- Author:TRNote
- URL:https://nt.665669.xyz/article/imgbed2
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!











