上级 项目
type
status
date
slug
summary
password
子级 项目
tags
category

开源文件托管解决方案,基于 Cloudflare Pages,支持 Telegram Bot 、 Cloudflare R2 ,S3 等多种存储渠道

免费文件托管解决方案,具有上传、管理、读取、删除等全链路功能,覆盖文件全生命周期,支持鉴权、目录、图片审查、随机图等各项特性。
功能:
- 支持上传到指定目录
- 支持整目录删除
- 支持文件位置移动(Telegraph 和旧版 Telegram 渠道不支持移动)
- 支持按目录读取文件
- 支持随机图API:按目录读取,支持按目录进行权限控制
- 支持上传用户管理显示IP具体位置
- 支持覆盖大多数文件格式:支持绝大多数常见图片、视频、动图等,同时也支持其他大多数格式的文件
- 支持多种存储渠道:支持
Telegram Bot
,Cloudflare R2
,S3
等多种存储渠道一键切换
- 支持上传方式多样:支持多种上传方式(拖拽点击、粘贴)(Web/API)
- 支持多样化复制:支持整体复制和单独复制(整体复制即将所有链接通过换行串联起来后复制),支持设置自定义链接前缀,便于接入三方CDN服务
- 支持身份认证、防滥用:支持Web和API上传认证,支持访问域名限制,支持上传IP统计
- 支持页面自定义:背景自定义,网站信息自定义
- 无限图片储存数量:你可以上传不限数量的图片
- 无需购买服务器:托管于 Cloudflare 的网络上,当使用量不超过 Cloudflare 的免费额度时,完全免费
- 支持图片审查 API:可根据需要开启,开启后不良图片将自动屏蔽,不再加载
- 支持后台图片管理:可以对上传的图片进行在线预览,添加白名单,黑名单等操作
部署使用:
一、前期准备
根据所需开通的渠道进行以下准备:
开通Telegram Bot渠道:
Telegram的
TG_BOT_TOKEN
和TG_CHAT_ID
TG_BOT_TOKEN和TG_CHAT_ID的获取方式
首先需要拥有一个Telegram账户,然后按照以下步骤获取
TG_BOT_TOKEN
和TG_CHAT_ID
。
Ⅱ. 创建一个新的频道(Channel),进入新建的频道,选择频道管理,将刚才创建的机器人设为频道管理员。



Ⅲ. 向@VersaToolsBot转发一条第2步新建频道中的消息,获取TG_CHAT_ID(频道ID)

开通Cloudflare R2渠道:
新建一个Cloudflare R2存储桶,前提是需要绑定支付方式。
Cloudflare R2渠道开通方式:
Ⅰ. 前往Cloudflare Dashboard,选择
R2存储对象

Ⅱ. 选择
创建存储桶
,名称随意,填完后点击创建存储桶
即可完成创建
Ⅲ. 根据需求可选操作:如果需要启用图像审查,需要开启存储桶的公网访问权限,有两种开启方式,详见下图。无论你选择哪种方式,都需要记下完整的公网访问链接,格式为https://xxxx.xxx

S3 API渠道:
在服务提供商处,准备
S3_ACCESS_KEY_ID
、S3_SECRET_ACCESS_KEY
、S3_BUCKET_NAME
、S3_ENDPOINT
等必须参数。二、部署教程
根据自己需求部署在CloudFlare或服务器上
1.部署于Cloudflare
需准备一个Cloudflare账户,然后按照以下步骤即可完成部署。
Ⅰ. Fork 本仓库
Ⅱ. 打开 Cloudflare Dashboard,进入 Pages 管理页面,选择创建项目,选择
连接到 Git 提供程序

Ⅲ. 按照页面提示输入项目名称,选择需要连接的 git 仓库,点击
开始设置
Ⅳ. 填写
项目名称
,构建命令填写npm install
,点击保存并部署

Ⅴ. 绑定KV数据库:
创建一个新的KV数据库


进入项目对应
设置
->绑定
->添加
->KV命名空间
->变量名称
,填写img_url
,KV命名空间
选择刚才创建好的KV数据库Ⅵ. 重试部署:前往项目管理界面->部署->最新一次部署后面的···->重试部署
Ⅶ. 根据所需存储渠道进行相关设置:
Cloudflare R2
渠道:将前面新建的存储桶绑定到项目(和KV绑定地方一样),名称为
img_r2

若要启用 R2 渠道的图像审查,请进入 项目管理页面->系统设置->上传设置 处设置 R2 的公开访问链接,值为前面记下的R2存储桶公网访问链接
其他渠道:
进入项目管理页面
https://你的域名/systemConfig#upload
,按照页面提示将上面中获取的渠道参数填写到对应渠道中,保存设置即可2.部署于服务器
如果Cloudflare的有限访问次数不能满足你的需求,并且你拥有自己的服务器,在服务器上模拟Cloudflare的环境,并开放对应的端口访问服务。
注意由于服务器操作系统、硬件版本复杂多样,相关教程无法确保适合每一位用户,遇到报错请尽量利用搜索引擎解决。
Ⅰ. 安装服务器操作系统对应的
node.js
,经测试v22.5.1版本可以正常使用。(安装教程自行search)Ⅱ. 切换到项目根目录,运行
npm install
,安装所需依赖。Ⅲ. 在项目根目录下新建
wrangler.toml
配置文件,其内容为项目名称,环境变量等。(详情参见官方文档Configuration - Wrangler (cloudflare.com))配置文件样例:
Ⅳ. 在项目根目录下运行
npm run start
,至此,正常情况下项目已经成功部署。项目默认支持通过服务器本地模拟的R2存储上传,可通过管理端系统设置页面进行其他设置。程序默认运行在
8080
端口上,使用nginx
等服务器反代127.0.0.1:8080
即可外网访问服务。如需修改端口,可在package.json
中修改start脚本的port
参数(如下)。正常启动,控制台输出如下:

三、效果展示





- 作者:团子
- 链接:https://ikun.su///article/CloudFlare-ImgBed
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。