CloudFlare-ImgBed 图床 + Firefly 相册 部署教程

633 字
3 分钟
CloudFlare-ImgBed 图床 + Firefly 相册 部署教程

一、部署图床(CloudFlare-ImgBed / Sanyue ImgHub)#

1.1 克隆项目#

Terminal window
git clone https://github.com/MarSeventh/CloudFlare-ImgBed.git
cd CloudFlare-ImgBed
npm install

1.2 配置环境变量#

复制 .env.example.env,填写必要配置:

# 必填:Telegram Bot Token(用于存储文件到 Telegram)
TG_BOT_TOKEN=你的Telegram Bot Token
# 必填:管理员密码
ADMIN_PASSWORD=你的管理员密码
# 可选:自定义域名
CUSTOM_DOMAIN=https://imge.yourdomain.com

1.3 部署到 Cloudflare Pages#

Terminal window
# 构建
npm run build
# 部署(需要先安装 wrangler 并登录)
npx wrangler pages deploy dist --project-name=imge

或在 Cloudflare Dashboard 中:

  1. Workers & Pages → Create → Pages → Connect to Git
  2. 选择仓库,框架预设选 None
  3. 构建命令:npm run build
  4. 输出目录:dist
  5. 添加环境变量(TG_BOT_TOKEN 等)

1.4 配置 Telegram 存储#

  1. 在 Telegram 搜索 @BotFather,创建 Bot 获取 Token
  2. 创建一个频道,将 Bot 添加为管理员
  3. 发送一条消息到频道,转发给 @getidsbot 获取频道 ID
  4. 将 Token 和频道 ID 填入 .env

1.5 生成 API Token#

  1. 访问 https://你的域名/admin 登录管理后台
  2. 系统设置 → 安全设置 → API Token 管理
  3. 新建 Token,勾选 list 权限
  4. 复制保存 Token(仅显示一次)

二、对接 Firefly 相册#

2.1 配置文件#

编辑 Firefly 项目的 src/config/imgBedConfig.ts

export const imgBedConfig = {
baseUrl: "https://你的图床域名",
apiToken: "你的API Token(list权限)",
pageSize: 50,
};

2.2 相册配置#

src/config/galleryConfig.tsalbums 数组中已包含图床相册条目:

{
id: "imgbed",
name: "图床相册",
description: "来自 ImgBed 的图片(构建时自动同步)",
location: "CloudFlare-ImgBed",
date: "2026-01-01",
tags: ["图床", "自动同步"],
},

2.3 构建与发布#

Terminal window
pnpm build # 构建时自动从 API 拉取最新图片列表
pnpm preview # 本地预览

构建后访问 https://你的博客域名/gallery/imgbed 即可看到图床中的所有图片。


三、工作原理#

pnpm build
├─ src/utils/imgbed-utils.ts
│ └─ fetchImgBedImages()
│ │
│ ├─ GET /api/manage/list?fileType=image&start=0&count=50
│ │ Authorization: Bearer <token>
│ │
│ └─ 循环分页拉取直到全部获取
├─ src/utils/gallery-utils.ts
│ └─ scanAlbumPhotos("imgbed")
│ └─ 调用 fetchImgBedImages()
└─ 生成静态 HTML,图片 URL 硬编码为 /file/<name>
  • 图片在构建时拉取,生成静态页面
  • 新增图片后需要重新构建才会显示
  • 支持分页,自动处理大量图片

四、常见问题#

Q: 图床使用哪种存储?#

A: 支持 Telegram、Cloudflare R2、S3、Discord、HuggingFace。推荐 Telegram(免费无限存储)。

Q: 图片不显示?#

A: 检查 imgBedConfig.ts 中的 baseUrl 是否正确,API Token 是否有 list 权限。浏览器 F12 → Network 查看 API 请求是否 200。

Q: 如何更新图片?#

A: 在图床上传新图片后,重新执行 pnpm build 即可同步。

Q: CORS 问题?#

A: ImgBed 默认已启用 Access-Control-Allow-Origin: *,无需额外配置。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或打赏支持!

打赏
CloudFlare-ImgBed 图床 + Firefly 相册 部署教程
https://blog.994613.xyz/posts/imgbed-deploy/
作者
临渊羡鱼
发布于
2026-07-25
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
临渊羡鱼
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签
站点统计
文章
2
分类
1
标签
1
总字数
1,343
运行时长
0
最后活动
0 天前
站点信息
构建平台
Cloudflare Pages
博客版本
Firefly v6.16.4
文章许可
CC BY-NC-SA 4.0