通过 Telegraph 与 CF大善人 提供的 Pages、D1,搭建一个专属于你自己的开源图床。如果你有更多需求,还可通过优选加速图片载入时间,并接入 ModerateContent 提供的审查图像内容的 API key,过滤不当内容!
优点
无限图片储存数量,你可以上传不限数量的图片 but! 单张图片不能超过5MB
无需服务器,托管于 Cloudflare 的网络上,当使用量不超过 Cloudflare 的免费额度时,完全免费
无需域名,可以使用 Cloudflare Pages 提供的 *.pages.dev 的免费二级域名,同时也支持绑定自定义域名
支持图片审查 API,可根据需要开启,开启后不良图片将自动屏蔽,不再加载
支持后台管理,日志管理,查看访问前 20 的 Referer、IP、img,可以对上传的图片进行在线预览,添加白名单、黑名单等操作
开始部署
[upl-image-preview url=https://s.rmimg.com/2024-08-21/1724205236-796930-image.png]
打开 telegraph-Image 仓库,点击 Fork!
回到 Workers 和 Pages > 概述 > 创建 > Pages > 连接到 Git > 选择 telegraph-Image 项目(注意构建配置选择 Next.js) > 保存并部署即可
推荐使用已经转入 CF 的域名,并开启 小黄云。如果没有域名,也可以使用 CNAME 方式 接入自定义域。
回到 Workers 和 Pages / telegraph-Image 项目 > 设置 > 函数 > 放置 > 制作 > 智能 > 保存
3.1 回到 Workers 和 Pages > D1 > 创建数据库 > 仪表盘 > 数据库名称 img (名称可取任意值) > 创建
```
`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
);`
```
3.2 进入 img 数据库 > 控制台 > 粘贴以下代码 后 > 点击 执行 > 等待提示 此查询已成功执行。
```
sql
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
);
```
[upl-image-preview url=https://s.rmimg.com/2024-08-21/1724205347-482051-image.png]3.3 回到 Workers 和 Pages / telegraph-Image 项目 > 设置 > 函数 > D1 数据库绑定 > 变量名 IMG > img 的数据库名称 > 点击 保存
[upl-image-preview url=https://s.rmimg.com/2024-08-21/1724205363-124264-image.png]
3.4 回到 Workers 和 Pages / telegraph-Image 项目 > 设置 > 环境变量 > 为生产环境定义变量 > 变量内容如下:
[upl-image-preview url=https://s.rmimg.com/2024-08-21/1724205378-682724-image.png]
变量名 BASIC_USER,值为你的 后台管理员用户名
变量名 BASIC_PASS,值为你的 后台管理员密码
注意生产和预览环境都要设置,防止进坑
无需审查不当内容可跳过这一步
打开 ModerateContent API 申请页面,输入你的邮箱后点击 SUBMIT
前往你的邮箱将 ModerateContent.com Sup 邮件内的 API Key 复制出来
变量名 ModerateContentApiKey,值为你的 API Key
点击 保存
3.5 回到 Workers 和 Pages / telegraph-Image 项目 > 部署 > 右下角 三个点 > 重试部署即可
如何使用
例如:你的 Pages 自定义域 为 eu.org
https://eu.org 为 图床上传使用地址
https://eu.org/admin 为 图床后台管理地址
https://eu.org/list 为 图床访问日志
效果展示
[upl-image-preview url=https://s.rmimg.com/2024-08-21/1724205412-297054-image.png]