{"id":29344336,"url":"https://github.com/wqlc/cloud-gram-store","last_synced_at":"2026-05-17T17:08:22.270Z","repository":{"id":302581529,"uuid":"1008158543","full_name":"wqlC/cloud-gram-store","owner":"wqlC","description":"CloudGramStore 是一个基于 Cloudflare Workers 和 Telegram Bot API 的云文件管理系统，通过创新的方式将 Telegram 作为文件存储后端，实现了无需传统云存储服务的个人云盘解决方案。系统支持 文件上传、下载、重命名、删除、目录管理等功能，适合个人使用。","archived":false,"fork":false,"pushed_at":"2025-07-03T05:51:00.000Z","size":1906,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-07-03T06:32:13.361Z","etag":null,"topics":["cloudflare","personal-cloud-storage","telegram"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wqlC.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-25T05:55:56.000Z","updated_at":"2025-07-03T05:51:05.000Z","dependencies_parsed_at":"2025-07-03T06:42:20.881Z","dependency_job_id":null,"html_url":"https://github.com/wqlC/cloud-gram-store","commit_stats":null,"previous_names":["wqlc/cloud-gram-store"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/wqlC/cloud-gram-store","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wqlC%2Fcloud-gram-store","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wqlC%2Fcloud-gram-store/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wqlC%2Fcloud-gram-store/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wqlC%2Fcloud-gram-store/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wqlC","download_url":"https://codeload.github.com/wqlC/cloud-gram-store/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wqlC%2Fcloud-gram-store/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271400259,"owners_count":24752830,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-20T02:00:09.606Z","response_time":69,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloudflare","personal-cloud-storage","telegram"],"created_at":"2025-07-08T14:00:44.114Z","updated_at":"2026-05-17T17:08:17.239Z","avatar_url":"https://github.com/wqlC.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CloudGramStore\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Cloudflare Workers](https://img.shields.io/badge/Cloudflare-Workers-orange.svg)](https://workers.cloudflare.com/)\n[![Telegram Bot API](https://img.shields.io/badge/Telegram-Bot%20API-blue.svg)](https://core.telegram.org/bots/api)\n\n\nCloudGramStore 是一个基于 Cloudflare Workers 和 Telegram Bot API 的云文件管理系统，通过创新的方式将 Telegram 作为文件存储后端，实现了无需传统云存储服务的个人云盘解决方案。系统支持 文件上传、下载、重命名、删除、目录管理等功能，适合个人使用。\n\n![login-image](./images/login-image.png)\n\n![manage-image](./images/image.png)\n\n## ✨ 功能特性\n\n- **用户认证**：基于 JWT 的安全认证系统\n- **文件管理**：\n  - 文件上传（支持拖拽上传和多文件选择）\n  - 文件下载、预览\n  - 文件重命名和删除\n  - 大文件分片处理（突破 Telegram 单文件限制）\n- **文件夹管理**：\n  - 多级文件夹创建和导航\n  - 面包屑路径导航\n  - 文件夹重命名和删除\n- **用户体验**：\n  - 拖拽上传、进度反馈\n  - 全局加载状态显示\n  - 操作结果通知（成功/失败/详情）\n  - 响应式美观 UI，适配移动设备\n  - 键盘快捷键支持\n\n## 🚀 快速开始\n\n### 前置条件\n\n- [Node.js](https://nodejs.org/) (v16 或更高版本)\n- [npm](https://www.npmjs.com/) 或 [yarn](https://yarnpkg.com/)\n- [Cloudflare 账户](https://dash.cloudflare.com/sign-up)\n- [Telegram Bot](https://core.telegram.org/bots#how-do-i-create-a-bot) 和\n- 一个用于存储文件的 Telegram 群组/频道,把机器人加入到频道并将其作为管理员\n\n### 安装\n\n1. **克隆仓库**\n\n   ```sh\n   git clone https://github.com/yourusername/cloud-gram-store.git\n   cd cloud-gram-store\n   ```\n\n2. **安装依赖**\n\n   ```sh\n   npm install\n   ```\n\n3. **配置环境**\n\n   3.1. 复制示例配置文件并进行编辑：\n\n   ```sh\n   cp wrangler.jsonc.example wrangler.jsonc\n   ```\n\n   3.2. 编辑 `wrangler.jsonc` 文件，填入以下信息：\n   - Telegram Bot Token\n   - Telegram Chat ID\n   - 管理员用户名和密码\n\t\t- 本项目只支持单用户，没有用户注册功能\n   - JWT 密钥\n\n4. **初始化数据库**\n\n   ```sh\n   npx wrangler d1 create cloud-gram-store-db\n   ```\n\n   将生成的数据库 ID 添加到 `wrangler.jsonc` 文件中。\n\n   ```sh\n\t# 本地执行建表语句\n   npx wrangler d1 execute cloud-gram-store-db --file=schema.sql\n\n\t# 远端执行建表语句\n   npx wrangler d1 execute cloud-gram-store-db --file=schema.sql --remote\n   ```\n\n### 本地开发\n\n1. **启动开发服务器**\n\n   ```sh\n   npm run dev\n   # 或\n   npx wrangler dev\n   ```\n\n2. **访问前端**\n\n   打开浏览器访问 http://localhost:8787\n\n### 部署到 Cloudflare Workers\n\n```sh\nnpm run deploy\n# 或\nnpx wrangler deploy\n```\n\n## 📂 项目结构\n\n```\n├── public/           # 前端静态资源\n│   ├── css/          # 样式文件\n│   ├── js/           # JavaScript 文件\n│   │   └── modules/  # JS 模块\n│   └── index.html    # 主页面\n├── src/              # 后端服务\n│   ├── services/     # 核心服务\n│   │   ├── auth.js   # 认证服务\n│   │   ├── database.js # 数据库服务\n│   │   ├── file.js   # 文件服务\n│   │   └── telegram.js # Telegram 服务\n│   ├── utils/        # 工具函数\n│   │   ├── response.js # 响应处理\n│   │   └── router.js # 路由处理\n│   └── index.js      # 主入口\n├── schema.sql        # 数据库结构\n├── wrangler.jsonc    # Cloudflare 配置\n└── package.json      # 项目依赖\n```\n\n## 💡 技术实现\n\n### 核心技术栈\n\n- **前端**：原生 JavaScript、HTML5、CSS3\n- **后端**：Cloudflare Workers (JavaScript)\n- **数据库**：Cloudflare D1 (SQLite)\n- **存储**：Telegram Bot API\n- **认证**：JWT (JSON Web Tokens)\n\n### 创新点\n\n- **Telegram 作为存储后端**：利用 Telegram 的无限存储空间，避免了对传统云存储的依赖\n- **文件分片处理**：突破 Telegram 单文件大小限制，支持大文件上传和下载\n- **边缘计算**：基于 Cloudflare Workers 的全球分布式部署，提供低延迟访问\n\n## 👥 贡献\n\n欢迎贡献代码、报告问题或提出改进建议！\n\n1. Fork 本仓库\n2. 创建您的特性分支 (`git checkout -b feature/amazing-feature`)\n3. 提交您的更改 (`git commit -m 'Add some amazing feature'`)\n4. 推送到分支 (`git push origin feature/amazing-feature`)\n5. 打开一个 Pull Request\n\n## 📜 许可证\n\n本项目采用 MIT 许可证 - 详情请参阅 [LICENSE](LICENSE) 文件\n\n## 📞 联系方式\n\n如需详细开发文档或遇到问题，请联系项目维护者或提交 Issue。\n\n---\n\n\u003cp align=\"center\"\u003e使用 ❤️ 和 ☕ 构建\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwqlc%2Fcloud-gram-store","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwqlc%2Fcloud-gram-store","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwqlc%2Fcloud-gram-store/lists"}