CloudFlare-ImgBed:开源免费的个人图床,手把手教你搭建
好的,这是根据视频内容为您生成的Markdown格式的图床搭建教程。
使用 Cloudflare + GitHub 搭建免费开源图床 ImgBed
本教程将指导您如何利用 Cloudflare Pages 和 GitHub,免费搭建一个功能强大、开源的个人图床——Cloudflare ImgBed。该方案支持多种存储方式,本教程以 Cloudflare R2 作为存储后端为例。
准备工作
- 一个 GitHub 账户。
- 一个 Cloudflare 账户。
- (可选)一个在 Cloudflare 上管理的域名,用于自定义访问地址。
步骤一:Fork 项目到自己的 GitHub 仓库
首先,我们需要将 ImgBed 的官方项目代码复制(Fork)一份到自己的 GitHub 账户下。
- 访问 ImgBed 的官方 GitHub 仓库:
https://github.com/MaiSeventh/Cloudflare-ImgBed
- 点击页面右上角的 Fork 按钮。
- 在弹出的页面中,确认仓库名称无误后,点击 Create fork 按钮。
等待片刻,该项目就会被完整地复制到您的个人 GitHub 账户中。
步骤二:在 Cloudflare Pages 上部署项目
接下来,我们将使用 Cloudflare Pages 来部署我们刚刚 Fork 的项目。
- 登录 Cloudflare 控制台。
- 在左侧导航栏中,选择 Workers & Pages。
- 点击 创建应用程序,然后选择 Pages 选项卡。
- 选择 连接到 Git。
- 在弹出的窗口中,选择您刚刚 Fork 的
Cloudflare-ImgBed
仓库,然后点击 开始设置。 - 配置项目构建设置:
- 项目名称:保持默认或自定义。
- 生产分支:选择
main
。 - 构建命令:输入
npm install
- 构建输出目录:留空或填写
/
- 点击 保存并部署。
Cloudflare 将开始自动构建和部署您的项目。这个过程可能需要几分钟。
步骤三:配置 KV 和 R2 存储
为了让图床能够正常存储数据和管理文件,我们需要创建并绑定 KV 命名空间和 R2 存储桶。
1. 创建 KV 命名空间
KV 用于存储图床的配置信息。
- 在 Cloudflare 左侧导航栏中,找到 R2 和存储 -> KV。
- 点击 创建命名空间。
- 命名空间名称 必须填写为:
img_url
- 点击 添加。
2. 创建 R2 存储桶
R2 用于实际存储您上传的图片文件。
- 在 Cloudflare 左侧导航栏中,选择 R2 和存储 -> R2。
- 点击 创建存储桶。
- 存储桶名称:自定义一个名称,例如
img-r2
。 - 位置:选择自动即可。
- 点击 创建存储桶。
3. 绑定 KV 和 R2 到 Pages 项目
- 返回到 Workers & Pages,点击您刚才创建的 ImgBed 项目。
- 进入项目的 设置 -> 函数 页面。
- 在 KV 命名空间绑定 部分,点击 添加绑定:
- 变量名称:
img_url
- KV 命名空间:选择刚才创建的
img_url
- 变量名称:
- 在 R2 存储桶绑定 部分,点击 添加绑定:
- 变量名称:
img_r2
- R2 存储桶:选择刚才创建的 R2 存储桶
- 变量名称:
- 点击 保存。
4. 重新部署使绑定生效
由于我们添加了新的绑定,需要重新部署一次项目。
- 返回项目的 部署 页面。
- 找到最新的部署记录,点击其右侧的 … -> 重试部署。
步骤四:初始化图床设置
部署完成后,我们就可以访问图床并进行最后的配置了。
- 访问 Cloudflare 为您生成的项目域名(例如
cloudflare-imgbed-xxx.pages.dev
)。 - 点击右下角的菜单图标(三条横线),选择 管理页面。
- 在左上角的菜单中,选择 系统设置。
- 进入 安全设置 选项卡,设置您的 管理员认证(用户名和密码)和 用户认证(上传密码)。设置完成后,点击 保存设置。
- 返回左侧菜单,选择 上传设置。
- 在上传渠道中,选择 Cloudflare R2,然后点击 保存设置。
至此,您的图床已经完全配置好了,可以开始上传图片了。
步骤五:(可选)绑定自定义域名
如果您想使用自己的域名访问图床,可以进行以下设置。
- 在 ImgBed 项目的 设置 中,选择 自定义域。
- 点击 设置自定义域。
- 输入您想要使用的域名(例如
img.yourdomain.com
),然后点击 继续。 - Cloudflare 会自动验证并完成 DNS 记录的配置。等待状态变为 有效 即可。
现在,您就可以通过自己的域名来访问和使用这个功能完善的个人图床了。