介绍
基于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数据库
2、 数据库初始化
数据库初始化命令
CREATE TABLE media (
key TEXT PRIMARY KEY,
timestamp INTEGER NOT NULL,
url TEXT NOT NULL
);
3、创建Worker程序
4、设置自定义域名或路由设置优选域名
如果需要加速cf worker,并且域名托管在CF
只需要将自定义域的解析记录删除,然后重新添加新的cname记录到任意优选CNAME域名即可(不要勾选小云朵,选择仅DNS)
优质优选cname地址如下
https://monitor.gacjie.cn/page/cloudflare/cname.html
进入该管理域名内,左侧有个worker路由,将刚刚优选的二级域名(后面最好加/*
)填入这个路由中,然后worker选择指向,选择刚刚创建的,最后手动访问一次网站即可
5、设置后台管理环境变量
环境变量设置账号USERNAME
环境变量设置密码PASSWORD
数据库绑定变量DATABASE
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
改为你的自定义域。 - 点击 部署。
- 访问自定义域名即可访问图床。
评论