无需服务器和域名!用 Cloudflare ImgBed 搭建永久免费图床

手把手教你用 Cloudflare ImgBed 搭建永久免费图床,无需服务器和域名,支持 R2、Telegram、Discord 等多种存储后端。零成本、零维护,纯小白也能轻松上手。

为什么你需要一个专属图床?

如果你经常在论坛、评论区或社交媒体上分享图片,大概率会遇到这些烦恼:将图片直接上传到第三方平台,不仅画质被压缩得一塌糊涂,而且链接随时可能失效;更糟糕的是,某些平台还会在图片上强制打上水印。对于站长来说,直接在站外调用自己服务器上的图片还有另一个隐患——流量被刷爆的风险。一旦图片在外站火了,每加载一次都要消耗你的服务器带宽和资源,轻则账单飙升,重则服务器直接宕机。

所谓”图床”,就是专门用来存储和分发图片的服务。一个好的图床能让你轻松上传图片后直接获得可分享的链接,并支持 HTML、Markdown、BBCode 等多种格式,无论你在哪个平台发帖都能一键粘贴。更重要的是,你可以在后台统一管理所有图片,一旦发现某张图片被滥用了,能够随时将其加入黑名单,停止对外访问,而不需要去服务器上删除文件。这种灵活的管理方式,是任何直接上传到第三方平台都无法比拟的。

然而传统自建图床方案往往需要一台 VPS 服务器和一个域名,对于预算有限的新手来说门槛不低。好在 Cloudflare 提供了极其慷慨的免费套餐,配合开源项目 Cloudflare ImgBed,我们完全可以做到零成本搭建一个功能完善、稳定可靠的图床服务。

Cloudflare ImgBed 是什么?

Cloudflare ImgBed 是一个开源的、基于 Cloudflare 生态的无服务器文件托管方案。该项目由 MarSeventh 开发维护,在 GitHub 上已经获得了超过 5300 颗星和 6600 次 Fork,社区活跃度非常高。项目地址:https://github.com/MarSeventh/CloudFlare-ImgBed

它之所以受到广泛欢迎,核心原因在于充分利用了 Cloudflare 的免费额度——Cloudflare Pages 每天有 10 万次请求的免费额度,R2 对象存储有 10GB 免费存储空间和每月 1000 万次读取操作,D1 数据库每天有 50 亿次读取的资源单位——这些额度对于一个个人图床来说绰绰有余。

在部署方式上,Cloudflare ImgBed 提供了极大的灵活性:你可以选择 Cloudflare Pages 部署(推荐)、Cloudflare Workers 部署、Docker 部署或传统的 Node.js 直接部署。在存储后端方面,它支持 Cloudflare R2、S3 兼容存储、Telegram Bot、Discord、HuggingFace 以及 WebDAV 等多种渠道,你完全可以根据自己的需求和使用习惯来选择。

%8B%A9%EF%BC%9A%E4%B8%BA%E4%BD%95%E9%A6%96%E9%80%89_Cloudflare_Pages_R2″>方案选择:为何首选 Cloudflare Pages + R2

在各种部署方案中,Cloudflare Pages + R2 的组合无疑是性价比最高的选择。整个部署过程完全不需要你自己的服务器,不需要购买域名(Pages 自带的 pages.dev 域名在国内部分地区可以正常访问),所有服务全部跑在 Cloudflare 的基础设施上,维护成本几乎为零。

为什么推荐 Pages 而非 Workers?有两个非常重要的原因。第一,Pages 的部署流程更加简单,全程可视化操作,通过 GitHub 仓库的自动同步就能实现持续部署,以后项目更新了你只需要在 Fork 的仓库中点一下 Sync 即可自动拉取最新代码并重新构建。第二,Pages 自带的 *.pages.dev 域名在国内部分地区可以正常访问,而 *.workers.dev 域名目前已经被封锁,如果使用 Workers 部署就必须绑定自己的自定义域名,这对于不想花钱买域名的用户来说是一道硬性门槛。

在数据库的选择上,Cloudflare ImgBed 支持 KV 和 D1 两种方案。KV 的性能更强但免费额度较少(每天 10 万次读取、1000 次写入),D1 的读写性能稍弱但额度多得惊人(每天 50 亿行读取)。对于图床场景来说,数据库的读写性能并不是瓶颈——图片上传和访问的主要开销在网络传输和存储读取上,而不是数据库查询。因此,D1 是性价比更高的选择,多出来的免费额度能让你的图床更加”坚挺”,不必担心因为超出额度而服务中断。

手把手部署教程

第一步:Fork 项目

首先,你需要访问 Cloudflare ImgBed 的 GitHub 项目页面(https://github.com/MarSeventh/CloudFlare-ImgBed),点击右上角的 “Fork” 按钮将项目复制到自己的 GitHub 账号下。仓库名可以保持默认,直接点击 “Create fork” 即可。Fork 完成后,你就拥有了项目的一份完整副本,后续所有的部署和定制操作都在这个副本上进行。

第二步:部署到 Cloudflare Pages

登录 Cloudflare 控制面板,在左侧边栏中找到 “Compute” → “Workers & Pages” → “Create application”。然后在页面下方的 Pages 区域点击 “Get started” 进入 Pages 部署页面,选择 “Import an existing Git repository”。在授权 GitHub 账号后,选择你刚才 Fork 的仓库。

在部署配置页面中,项目名称和分支保持默认即可。这里需要修改两个关键参数:Build command 设置为 npm installBuild output directory 设置为 frontend-dist。设置完成后点击 “Save and Deploy”,Cloudflare 会自动从 GitHub 拉取代码、安装依赖并构建前端。等待几分钟,Pages 部署完成后,你就可以通过系统分配的 *.pages.dev 域名访问到 ImgBed 的前端页面了。

第三步:创建并绑定 D1 数据库

部署完成后,我们还不能马上使用——ImgBed 需要一个数据库来存储图片的元数据和配置信息。在 Cloudflare 控制面板中,进入 “Workers & Pages” → “D1″,点击 “Create database”。数据库名称可以随意填写,例如命名为 imgbed。创建完成后,你需要在 D1 的控制台中执行 SQL 初始化语句。

回到你 Fork 的 GitHub 仓库,打开 database/init.sql 文件,复制其中的 SQL 内容(不含注释部分)。然后在 D1 数据库的 “Console” 页面中粘贴并执行,即可完成数据库表的创建。接下来,回到 Pages 项目,进入 “Settings” → “Functions” → “D1 database bindings”,点击 “Add binding”,变量名称必须设置为 img_d1(这是项目代码中写死的变量名,不能改),选择你刚才创建的数据库后保存。完成绑定后,返回 Pages 首页手动触发一次重新部署,让绑定生效。

第四步:配置 R2 存储桶

数据库配置完成后,我们还需要设置图片的实际存储位置。在 Cloudflare 控制面板中进入 “R2” → “Create bucket”,创建一个存储桶,名称可以自定义(例如 imgbed-images)。然后回到 ImgBed 的后台管理页面(访问你的 *.pages.dev 域名),在系统设置中选择存储渠道为 “Cloudflare R2″,填入你的 R2 存储桶名称以及 Cloudflare 账号 ID(在 Workers & Pages 的右侧面板中可以找到)。保存设置后,ImgBed 就会将上传的图片存储到你的 R2 存储桶中。

如果你不想使用 R2,ImgBed 还支持其他多种存储渠道。比如 Telegram Bot 方案——创建一个 Telegram Bot 获取 Token,ImgBed 会将图片上传到 Telegram 的服务器上做存储,Telegram 在全球都有 CDN 节点,访问速度相当不错。或者使用 Discord 渠道,将图片存储到 Discord 的 CDN 上。这些方案各有优劣,R2 的优势在于完全在你的控制之下,不存在第三方服务条款变化导致图片丢失的风险。

第五步:重新构建并验证

完成以上所有配置后,再次回到 Pages 的部署页面,手动触发一次重新部署。等待构建完成后,访问你的 *.pages.dev 域名,应该能看到 Cloudflare ImgBed 的完整前端界面。尝试上传一张图片,检查上传功能是否正常,然后获取分享链接在浏览器中测试访问。如果一切顺利,恭喜你——你已经成功搭建了一个零成本的个人图床!

进阶配置与使用技巧

绑定自定义域名

如果你有自己的域名,强烈建议将其绑定到 Pages 项目上。操作路径:Pages 项目 → “Custom domains” → “Set up a custom domain”。绑定自定义域名后,你的图床访问地址会更加专业,而且通过 Cloudflare 的 CDN 加速和 SSL 加密,图片加载速度和安全性都能得到保障。更重要的是,如果你将域名托管在 Cloudflare 上,DNS 解析和 CDN 加速都是免费的。

前端 UI 定制

Cloudflare ImgBed 的前端基于 Sanyue-ImgHub 开源项目,默认的 UI 风格比较简洁,AI 感较强。如果你对前端界面有更高的要求,或者希望加入自己的品牌元素,完全可以 Fork 项目后修改前端源码,重新打包部署。现在的 AI 编程工具非常发达,即使你不懂前端开发,也可以借助 AI 助手轻松完成界面定制。

安全管理

ImgBed 提供了图片黑名单功能,一旦发现某张图片被滥用(比如被挂到恶意网站上),可以在后台将其加入黑名单。被列入黑名单的图片将返回 404 或替代图片,从访问层面切断滥用。此外,你还可以通过配置 Cloudflare WAF 规则来限制上传来源、设置每日上传限额,进一步提升图床的安全性。

总结

Cloudflare ImgBed 为个人站长和内容创作者提供了一个近乎完美的免费图床方案。它充分利用了 Cloudflare 慷慨的免费额度,让你不需要购买 VPS 服务器、不需要注册域名就能拥有一个功能完整的专属图床。整个搭建过程只需二三十分钟,后续的维护工作几乎为零——Cloudflare 会自动处理 SSL 证书更新、CDN 加速、DDoS 防护等底层工作,你只需要专注于上传和管理图片即可。

当然,这个方案也有一些局限性。由于 Cloudflare 的国内网络状况因地区而异,*.pages.dev 域名在北方的联通网络下可能访问不太稳定。此外,免费额度的 R2 存储空间为 10GB,对于大多数个人用户来说绰绰有余,但如果你需要存储高清视频或大量大尺寸图片,可能需要升级到付费套餐。综合考虑,Cloudflare ImgBed 是目前最值得推荐的个人图床方案之一,尤其适合预算有限但又需要可靠图床服务的用户。

最后提醒一下:无论使用哪种图床方案,都建议妥善保管好自己的图片文件备份。虽然 Cloudflare 的基础设施非常可靠,但任何服务都不存在 100% 的可用性保障。定期将重要图片备份到本地或其他存储服务,永远是一个好习惯。

原创文章,作者:kp51,如若转载,请注明出处:https://www.kepu51.com/instant-messaging/778.html

(0)
上一篇 4天前
下一篇 2天前

相关推荐