Skip to content

yutian81/CF-tgfile

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

150 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TGFile

项目特点

该项目是一个基于 Cloudflare Worker 环境和 telegram 频道存储功能的文件上传、分享、下载、搜索、在线预览系统,上传的文件将通过 Telegram 机器人发送到指定的频道聊天中

功能

  • 用户认证:可选是否开启身份认证,默认开启,如设置为 false,则跳过登录

    • 默认用户名、密码均为 admin
  • 文件上传:用户可以通过拖拽或点击选择文件进行上传,支持多文件上传,支持显示上传进度条百分比

    • 由于tg官方API的限制,无法上传超过20M的文件
    • 若需上传大文件,需要自行部署 TG-BOT-API 实现服务器分片
  • 文件管理:管理员可以查看已上传的文件列表,支持在线预览(图片和视频格式)、分享、下载和删除文件

    • 分享:会生成一个二维码,二维码框内点击“复制链接”按钮也可复制url链接
    • 下载:直接调用浏览器下载功能
    • 删除:会同步从tg频道中删除上传的文件
  • 文件搜索:用户可以根据文件名搜索已上传的文件

  • 背景图更新:系统会定期从 Bing 获取背景图,提升用户体验

  • API接口:支持调用API接口进行文件上传、删除、搜索等操作

若需要开启 WebP 转换

  • 已部署的用户需要手动运行以下 SQL 命令(依次运行)来添加新列:
ALTER TABLE files ADD COLUMN webp_url TEXT;
CREATE UNIQUE INDEX idx_webp_url ON files (webp_url) WHERE webp_url IS NOT NULL;
ALTER TABLE files ADD COLUMN webp_file_name TEXT;
  • 新部署无需运行以上 SQL 命令,新代码中的表结构已包含新列

2025-12-17 更新

  • 利用免费的 CF Images 实现将上传图片自动转换为 webp 格式 (免费额度:每月5000次唯一转换)

    • 开启方法:环境变量 WEBP_ENABLED
  • 固定API接口便于第三方集成,通过环境变量 API_TOKEN 设置固定密钥,默认为 tgfile-admin,详见 API 文档

  • 大幅精简代码,优化性能

2025-02-11 更新

  • 为前端页面增加图标和网站描述

2025-02-09 更新

  • 解决webp图片上传失败的问题

  • 文件管理页面删除文件时,可以同步从tg频道删除消息

  • 文件管理页面点击分享可生成二维码

部署方法

  1. 粘贴代码

    • 新建一个 worker,复制 _worker.js 的内容粘贴到项目中并部署
  2. 绑定数据库(必须)

    • 创建一个D1数据库,数据库名随意,例如:tgflie
    • 在worker项目的设置中绑定刚刚创建的数据库,变量名:DATABASE
  3. 配置环境变量

    变量名 变量值 是否必须 备注
    DOMAIN 你项目绑定的域名 如果不绑域名,就填 worker 域名,但无法开启 webp 转换
    USERNAME 登录用户名 默认 admin
    PASSWORD 登录密码 默认 admin
    API_TOKEN API接口密钥 × 默认 tgfile-admin
    COOKIE 7 × cookie有效期,默认为7
    ENABLE_AUTH true / false × 默认为true,如果设为false,则不启用登录
    WEBP_ENABLED true / false × 默认为false,设为 true 可启用图片格式自动转为 webp
    TG_BOT_TOKEN TG机器人 token 获取方式请自行谷歌,下同
    TG_CHAT_ID TG频道ID 是频道ID,不是机器人ID,格式为-10*****062333

访问应用

打开浏览器,访问 http://你绑定的域名,首次登录会要求输入用户名和密码,然后进行文件上传和管理
二次登录会跳过登录环节,直接进入上传页面,cookie 有效期为 7 天,超过 7 天会要求重新登录
你也可以在环境变量中设置 COOKIE 变量改变有效期

Plan 计划

  • 增加更多文件格式的在线预览
  • 文件管理页面增加批量删除功能

鸣谢

感谢这位大佬给予的灵感,有一些代码借鉴于此

贡献

欢迎任何形式的贡献!请提交问题或拉取请求。

许可证

该项目采用 MIT 许可证,详细信息请查看 LICENSE 文件。

About

基于 CF Worker 和 Telegram 的文件上传、分享工具,可用于临时图床和网盘

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors