介绍
基于Cloudflare Workers的Telegraph图床目前提供D1和KV两个版本,二者的主要区别在于存储位置
D1版本使用Cloudflare D1数据库进行存储,访问后台管理更流畅
KV版本则使用Cloudflare KV空间,数据多的情况下,加载后台页面需要的时间长一点
源码:https://github.com/0-RTT/telegraph
成品:https://545040.xyz/(使用D1数据库进行部署)
效果图


功能
- 支持上传大于5MB的图片。
- 在图床界面中可以直接粘贴上传。
- 选择图片后会自动上传,使用方便。
- 管理界面支持查看和播放MP4文件。
- 显示上传时间,并支持按上传时间排序。
- 支持修改后台路径为 /admin,可在代码的第二行进行调整。
- 图片管理功能可通过访问域名 /admin 实现,且图片支持懒加载。
- 仅允许代理自己上传的图片,无法访问通过其他TG图床上传的链接。
- 支持JPEG、JPG、PNG、GIF和MP4格式,GIF和MP4的大小需≤5MB。
- 支持URL、BBCode和Markdown格式,点击对应按钮可自动复制相应格式的链接。
- 选择图片后会自动压缩,以节省Cloudflare和Telegraph的存储空间,同时加快上传速度。
- 对于需要自定义UI的用户,可以自行修改HTML代码,在修改html代码时能够保留项目开源地址。
D1版本部署
D1数据库限制
- D1数据库限制详情
- 对于个人用户,500MB的免费存储空间足够用于储存图片链接使用。
| 类别 | 限制 |
|---|---|
| 数据库数量 | 50,000 (付费用户) beta / 10 (免费用户) |
| 最大数据库大小 | 2 GB (付费用户) beta / 500 MB (免费用户) |
| 每个帐户的最大存储空间 | 50 GB (付费用户) beta / 5 GB (免费用户) |
| Time Travel 间隔时间 (时间点恢复) | 30 days (付费用户) / 7 days (免费用户) |
| 最大 Time Travel 还原操作数 | 每 10 分钟 10 次还原(每个数据库) |
| 每个工作线程调用的查询数(读取子请求限制) | 50 (Bundled) / 1000 (Unbound) |
| 每个表的最大列数 | 100 |
| 每个表的最大行数 | 无限制(不包括每个数据库的存储限制) |
最大字符串或 BLOB 表行大小 | 1,000,000 bytes (1 MB) |
| 最大 SQL 语句长度 | 100,000 bytes (100 KB) |
| 每个查询的最大绑定参数数 | 100 |
| 每个 SQL 函数的最大参数数 | 32 |
LIKE 或 GLOB 模式中的最大字符数(字节) | 50 bytes |
| 每个工作线程脚本的最大绑定数 | 约5,000 人 |
图片教程
1、 创建D1数据库
![图片[1] - 全新的Telegraph图床 - 清~幽殇 图片[1] - 全新的Telegraph图床 - 清~幽殇](https://kycloud3.koyoo.cn/20240829ab8e7202408291110085598.png)
2、 数据库初始化
![图片[2] - 全新的Telegraph图床 - 清~幽殇 图片[2] - 全新的Telegraph图床 - 清~幽殇](https://kycloud3.koyoo.cn/20240829dde8f202408291110076344.png)
数据库初始化命令
CREATE TABLE media (
key TEXT PRIMARY KEY,
timestamp INTEGER NOT NULL,
url TEXT NOT NULL
);![图片[3] - 全新的Telegraph图床 - 清~幽殇 图片[3] - 全新的Telegraph图床 - 清~幽殇](https://kycloud3.koyoo.cn/2024082999a92202408291110079488.png)
![图片[4] - 全新的Telegraph图床 - 清~幽殇 图片[4] - 全新的Telegraph图床 - 清~幽殇](http://kycloud3.koyoo.cn/2024082913106202408291111045980.png)
![图片[5] - 全新的Telegraph图床 - 清~幽殇 图片[5] - 全新的Telegraph图床 - 清~幽殇](http://kycloud3.koyoo.cn/20240829426e2202408291111415611.png)
![图片[6] - 全新的Telegraph图床 - 清~幽殇 图片[6] - 全新的Telegraph图床 - 清~幽殇](http://kycloud3.koyoo.cn/202408290028f20240829111205448.png)
3、创建Worker程序
![图片[7] - 全新的Telegraph图床 - 清~幽殇 图片[7] - 全新的Telegraph图床 - 清~幽殇](http://kycloud3.koyoo.cn/202408295c74a202408291112222566.png)
![图片[8] - 全新的Telegraph图床 - 清~幽殇 图片[8] - 全新的Telegraph图床 - 清~幽殇](http://kycloud3.koyoo.cn/20240829b4a21202408291118209822.png)
![图片[9] - 全新的Telegraph图床 - 清~幽殇 图片[9] - 全新的Telegraph图床 - 清~幽殇](http://kycloud3.koyoo.cn/20240829d5fe4202408291113048235.png)
![图片[10] - 全新的Telegraph图床 - 清~幽殇 图片[10] - 全新的Telegraph图床 - 清~幽殇](https://i0.wp.com/k.663618.xyz/pic/243015.png)

4、设置自定义域名或路由设置优选域名
![图片[11] - 全新的Telegraph图床 - 清~幽殇 图片[11] - 全新的Telegraph图床 - 清~幽殇](http://kycloud3.koyoo.cn/20240829f9ecc202408291113197734.png)
![图片[12] - 全新的Telegraph图床 - 清~幽殇 图片[12] - 全新的Telegraph图床 - 清~幽殇](http://kycloud3.koyoo.cn/2024082997a84202408291113394516.png)
![图片[13] - 全新的Telegraph图床 - 清~幽殇 图片[13] - 全新的Telegraph图床 - 清~幽殇](http://kycloud3.koyoo.cn/202408294223e202408291114234528.png)
![图片[14] - 全新的Telegraph图床 - 清~幽殇 图片[14] - 全新的Telegraph图床 - 清~幽殇](http://kycloud3.koyoo.cn/202408294def5202408291113564340.png)
如果需要加速cf worker,并且域名托管在CF
只需要将自定义域的解析记录删除,然后重新添加新的cname记录到任意优选CNAME域名即可(不要勾选小云朵,选择仅DNS)
优质优选cname地址如下
https://monitor.gacjie.cn/page/cloudflare/cname.html
进入该管理域名内,左侧有个worker路由,将刚刚优选的二级域名(后面最好加/*)填入这个路由中,然后worker选择指向,选择刚刚创建的,最后手动访问一次网站即可
5、设置后台管理环境变量
![图片[15] - 全新的Telegraph图床 - 清~幽殇 图片[15] - 全新的Telegraph图床 - 清~幽殇](http://kycloud3.koyoo.cn/20240829ee47f202408291114436925.png)
环境变量设置账号USERNAME
环境变量设置密码PASSWORD
![图片[16] - 全新的Telegraph图床 - 清~幽殇 图片[16] - 全新的Telegraph图床 - 清~幽殇](http://kycloud3.koyoo.cn/2024082955160202408291115012336.png)
数据库绑定变量DATABASE
![图片[18] - 全新的Telegraph图床 - 清~幽殇 图片[18] - 全新的Telegraph图床 - 清~幽殇](http://kycloud3.koyoo.cn/202408299f1cf202408291115372291.png)
KV版本部署
KV限制
- KV键值限制详情
- 对于个人用户,免费额度足够用于储存图片链接使用。
| 类别 | 免费用户 | 付费用户 |
|---|---|---|
| 读 | 每天 100,000 次读取 | 无限 |
| 写入不同的键 | 每天 1,000 次写入 | 无限 |
| 写入同一密钥 | 每秒 1 次 | 每秒 1 次 |
| 操作/worker调用 | 1000 | 1000 |
| 命名空间 | 100 | 100 |
| 存储/帐户 | 1 GB | 无限 |
| 存储/命名空间 | 1 GB | 无限 |
| 键/命名空间 | 无限 | 无限 |
| 键大小 | 512 bytes | 512 bytes |
| 键元数据 | 1024 bytes | 1024 bytes |
| 值大小 | 25 MiB | 25 MiB |
使用方法
将代码部署到 Cloudflare Worker,设置自定义域和变量(需要设置环境变量并绑定 KV 命名空间)。
步骤 1: 创建 KV 命名空间
- 点击 Workers 和 Pages。
- 点击 KV。
- 点击 创建命名空间。
- 填写命名空间名称(可随意命名)。
点击 添加。
步骤 2: 创建 Worker
- 点击 Workers 和 Pages。
- 点击 创建。
- 填写 Worker 名称(可随意命名)。
点击 部署。
步骤 3: 添加自定义域
- 点击刚刚创建的 Worker 名称。
- 点击 设置。
- 点击 触发器。
点击 添加自定义域。
步骤 4: 添加环境变量
- 点击刚刚创建的 Worker 名称。
- 点击 设置。
- 点击 变量。
- 点击 添加环境变量。
填写两个环境变量:
USERNAME和PASSWORD,分别对应的值为账号和密码。步骤 5: 绑定 KV 命名空间
- 点击刚刚创建的 Worker 名称。
- 点击 设置。
- 点击 变量。
- 点击 KV 命名空间绑定。
- 点击 编辑变量。
填写变量名称
imgurl,并选择前面设置的 KV 命名空间。步骤 6: 编辑 Worker 代码
- 点击刚刚创建的 Worker 名称。
- 点击 编辑代码。
- 清除 Worker 原本的代码。
- 复制粘贴 worker.js 中的代码。
- 将代码第一行中的
example.com改为你的自定义域。 - 点击 部署。
访问自定义域名即可访问图床。
参考链接
1、利用D1数据库储存Telegraph图床链接 ,超详细的图片教程
2、分享一下我个人使用CF优选的经验和方法