Skip to content

Latest commit

 

History

154 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

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

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages