telegraph-Image:搭建专属开源图床

前言

对于许多博客作者和内容创作者来说,图床是一个不可或缺的工具。它不仅能够帮助我们存储图片,还可以生成稳定的外链,方便在文章中插入图片。虽然有很多第三方图床服务可用,但拥有一个属于自己的图床,能够让你更好地掌控图片的存储和管理。本文将教你如何使用 Telegraph 轻松搭建属于自己的图床。

一、准备工作

在开始之前,确保你已经具备以下条件:

  1. Cloudflare账号:托管于Cloudflare的网络上。
  2. 域名(可选):如果你希望你的图床有一个独立的域名,可以提前准备好一个域名并配置 DNS。
  3. telegraph-Image:图床项目。

二、开始部署

1.CloudFlare Pages 部署 telegraph-Image 项目

  • 打开telegraph-Image仓库项目,点击Fork或者Use this template创建项目。
  • 进入Cloudflare Workers 和 Pages > 概述 > 创建 > Pages > 连接到Git > 选择telegraph-Image项目 > 保存并部署即可

2. 绑定自定义域

  • 域名必须托管在Cloudflare才能使用自定义域名,你可以直接在Coudflare购买域名。
  • 回到 Workers 和 Pages /telegraph-Image项目 > 设置 > 函数 > 放置 > 制作 > 智能 > 保存

3. 创建管理后台

  • 进入 Workers 和 Pages > D1 > 创建数据库 > 仪表盘 > 数据库名称image(名称可取任意值) > 创建
  • 进入image数据库 > 控制台 > 粘贴以下代码后 > 点击执行 > 等待提示此查询已成功执行。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
DROP TABLE IF EXISTS tgimglog;
CREATE TABLE IF NOT EXISTS tgimglog (
`id` integer PRIMARY KEY NOT NULL,
`url` text,
`referer` text,
`ip` varchar(255),
`time` DATE
);
DROP TABLE IF EXISTS imginfo;
CREATE TABLE IF NOT EXISTS imginfo (
`id` integer PRIMARY KEY NOT NULL,
`url` text,
`referer` text,
`ip` varchar(255),
`rating` text,
`total` integer,
`time` DATE
);
  • 进入 Workers 和 Pages /telegraph-Image项目 > 设置 > 函数 > D1 数据库绑定 > 变量名IMAEG > image数据库 > 点击保存

  • 进入 Workers 和 Pages /telegraph-Image项目 > 设置 > 环境变量 > 为生产环境定义变量 > 变量内容如下:

    • 变量名BASIC_USER,值为你的后台管理员用户名
    • 变量名BASIC_PASS,值为你的后台管理员密码
    • 点击保存
  • 回到 Workers 和 Pages /telegraph-Image项目 > 部署 > 右下角三个点 > 重试部署即可

三、如何使用

例:Pages自定义域image.azhz.com

  • https://image.azhz.com图床上传使用地址
  • https://image.azhz.com/admin图床后台管理地址
  • https://image.azhz.com/list图床访问日志

优点

  1. 全球 CDN 加速
    • Cloudflare 提供全球范围内的 CDN 加速,用户上传的图片可以通过 Cloudflare 的节点快速分发,提高图片的加载速度,特别是在全球访问的情况下优势明显。
  2. 免费且高性能
    • Cloudflare Pages 提供了免费的静态网站托管服务,并且拥有高性能的基础设施,适合部署轻量级应用如 Telegraph-Image,不需要额外的服务器资源。
  3. 简单部署
    • Cloudflare Pages 支持与 GitHub 等版本控制系统集成,部署 Telegraph-Image 非常简单。你只需将代码推送到指定的仓库,Cloudflare Pages 就会自动构建和部署,非常适合持续集成和持续部署(CI/CD)。
  4. 自定义域名
    • 在 Cloudflare Pages 上,你可以轻松地使用自定义域名来展示你的图床,增强品牌识别度,并且配置简单,符合 SEO 最佳实践。
  5. 高可用性与稳定性
    • Cloudflare 的基础设施具备很高的稳定性和可用性,能够有效应对流量波动和DDoS攻击,确保你的图床服务始终在线。
  6. 内置安全防护
    • Cloudflare 提供内置的安全防护功能,包括防火墙、DDoS防护等,进一步提高你的图床服务的安全性。
  7. 优化的静态资源服务
    • Cloudflare Pages 对静态资源(如图片、CSS、JS)进行了优化,可以减少加载时间,提高用户体验。

缺点

  1. 有限的动态功能
    • Cloudflare Pages 是静态网站托管服务,主要用于托管静态内容。如果 Telegraph-Image 需要更多动态的服务器端处理功能(如实时图片处理或复杂的 API 调用),这可能会是一个限制。虽然可以通过 Cloudflare Workers 补充一些动态功能,但会增加复杂性。
  2. 对 Telegraph 服务的依赖
    • 即使部署在 Cloudflare Pages 上,Telegraph-Image 仍然依赖 Telegraph API。如果 Telegraph 服务出现问题或被限制,图床功能将受到影响。
  3. 图片大小限制依旧存在
    • 由于 Telegraph API 本身的限制,即使通过 Cloudflare 加速,单张图片的大小仍然限制在 5 MB,无法满足大文件的上传需求。
  4. 复杂的配置和维护
    • 对于没有经验的用户来说,Cloudflare Pages 的配置(如 DNS、HTTPS、Workers 等)可能会有一定的学习曲线,特别是涉及到高级功能或自定义配置时。
  5. 无法直接管理图片
    • Cloudflare Pages 不提供专门的图片管理界面,需要通过代码或 API 进行管理,对于不熟悉开发的用户来说,这可能不够直观和方便。
  6. 可能的延迟和缓存问题
    • 由于 Cloudflare Pages 依赖于 CDN 缓存,图片更新后可能会有延迟或缓存问题。如果你频繁更新图片,这一点需要特别注意。

结论

将 Telegraph-Image 部署在 Cloudflare Pages 上,能够充分利用 Cloudflare 的全球 CDN 加速、高可用性和安全性,适合轻量级图床应用。不过,由于 Pages 本身是静态托管服务,对于需要动态功能或更大图片文件的场景,可能需要额外的配置或其他解决方案。如果你的需求主要集中在稳定性和全球访问速度,那么 Cloudflare Pages 是一个非常合适的选择。

感谢