{"id":27390572,"url":"https://github.com/viper373/lights4","last_synced_at":"2025-12-30T23:05:08.277Z","repository":{"id":281800292,"uuid":"946460330","full_name":"Viper373/LightS4","owner":"Viper373","description":"一款基于vue和Fastapi的S3文件管理器，可在线管理文件","archived":false,"fork":false,"pushed_at":"2025-03-26T17:57:32.000Z","size":671,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-26T18:42:23.190Z","etag":null,"topics":["css","fastapi","html","javascript","object-storage","s3-storage","vitepress","vue"],"latest_commit_sha":null,"homepage":"https://s3-browser-seven.vercel.app","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Viper373.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2025-03-11T07:10:24.000Z","updated_at":"2025-03-26T17:57:37.000Z","dependencies_parsed_at":"2025-03-26T18:52:39.861Z","dependency_job_id":null,"html_url":"https://github.com/Viper373/LightS4","commit_stats":null,"previous_names":["viper373/s3browser","viper373/light-s3","viper373/lights4"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Viper373%2FLightS4","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Viper373%2FLightS4/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Viper373%2FLightS4/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Viper373%2FLightS4/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Viper373","download_url":"https://codeload.github.com/Viper373/LightS4/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248774949,"owners_count":21159533,"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","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":["css","fastapi","html","javascript","object-storage","s3-storage","vitepress","vue"],"created_at":"2025-04-13T20:00:57.854Z","updated_at":"2025-12-30T23:05:08.255Z","avatar_url":"https://github.com/Viper373.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![LightS4](https://socialify.git.ci/Viper373/LightS4/image?description=1\u0026forks=1\u0026issues=1\u0026logo=https%3A%2F%2Fimg.viper3.top%2FLightS4%2Flogo.png\u0026name=1\u0026owner=1\u0026pulls=1\u0026stargazers=1\u0026theme=Light)\n\n# 🌈 Light-S4·微光小溪\n\n\u003cdiv align=\"center\"\u003e\n  \u003cimg src=\"public/icon-192x192.png\" alt=\"微光小溪 Logo\" width=\"120\"/\u003e\n  \u003cp\u003e优雅而强大的 S3 兼容存储服务浏览器\u003c/p\u003e\n  \u003cp\u003e\n    \u003ca href=\"https://github.com/Viper373/Light-S4/blob/main/LICENSE\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/license/Viper373/Light-S4\" alt=\"license\"/\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/Viper373/Light-S4/releases\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/v/release/Viper373/Light-S4\" alt=\"release\"/\u003e\n    \u003c/a\u003e\n    \u003ca href=\"https://github.com/Viper373/Light-S4/issues\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/issues/Viper373/Light-S4\" alt=\"issues\"/\u003e\n    \u003c/a\u003e\n  \u003c/p\u003e\n\u003c/div\u003e\n\n## 🌟 项目概述\n\nLight-S4·微光小溪是一个基于 Next.js 的现代化 S3 兼容存储服务浏览器，为用户提供了优雅而强大的文件管理体验。它不仅支持基本的文件操作，还提供了专业的视频管理和播放功能，让文件管理变得轻松愉悦。\n\n## ✨ 核心特性\n\n### 🎯 通用功能\n- 💫 优雅的用户界面，支持亮暗主题切换\n- 🚀 快速的文件浏览和预览\n- 📱 完美的移动端适配\n- 🔍 强大的搜索功能（支持模糊搜索、后缀搜索）\n- 🌐 PWA 支持，可安装为本地应用\n\n### 📁 文件管理\n- 📂 直观的文件目录浏览\n- 📊 详细的文件信息显示\n- 🔄 文件操作历史记录\n- 🍞 智能的面包屑导航\n- 📈 文件使用统计\n\n### 🎬 视频功能\n- ▶️ 流畅的视频在线播放\n- 🖼️ 智能视频缩略图\n- 📊 视频元数据展示\n- 🎯 视频播放历史记录\n- 📺 自适应播放器\n\n## 🛠️ 技术栈\n\n- **核心框架**: [Next.js 14](https://nextjs.org/)\n- **UI 框架**: [Tailwind CSS](https://tailwindcss.com/)\n- **状态管理**: [React Context](https://react.dev/reference/react/useContext)\n- **数据库**: [MongoDB](https://www.mongodb.com/)\n- **存储服务**: [AWS S3 Compatible Storage](https://aws.amazon.com/s3/)\n- **部署平台**: [Vercel](https://vercel.com/)\n\n## 📂 项目结构\n\n```\nLight-S4/\n├── app/                      # Next.js 应用目录\n│   ├── layout.tsx           # 全局布局\n│   ├── page.tsx            # 首页\n│   ├── globals.css         # 全局样式\n│   ├── s3-manager/        # S3 管理器\n│   │   ├── components/    # 管理器组件\n│   │   │   ├── FileManager.tsx    # 文件管理器组件\n│   │   │   └── FileList.tsx       # 文件列表组件\n│   │   └── page.tsx       # 管理器页面\n│   └── video-station/     # 视频站\n│       ├── components/    # 视频站组件\n│       │   ├── VideoPlayer.tsx    # 视频播放器\n│       │   └── VideoList.tsx      # 视频列表\n│       └── page.tsx       # 视频站页面\n├── components/             # 共享组件\n│   ├── ui/               # UI 组件\n│   │   ├── button.tsx   # 按钮组件\n│   │   └── sidebar.tsx  # 侧边栏组件\n│   └── shared/          # 通用组件\n├── hooks/                 # 自定义 Hooks\n│   ├── use-s3.ts        # S3 操作 Hook\n│   └── use-theme.ts     # 主题切换 Hook\n├── lib/                   # 工具函数\n│   ├── s3-client.ts     # S3 客户端\n│   └── utils.ts         # 通用工具函数\n├── public/               # 静态资源\n│   ├── icons/           # 应用图标\n│   ├── manifest.json    # PWA 配置\n│   └── service-worker.js # Service Worker\n├── styles/               # 样式文件\n│   └── globals.css      # 全局样式\n├── config/              # 配置文件\n│   └── site.ts         # 站点配置\n├── .env.local          # 环境变量\n├── .eslintrc.json      # ESLint 配置\n├── next.config.mjs     # Next.js 配置\n├── package.json        # 项目依赖\n├── postcss.config.js   # PostCSS 配置\n├── tailwind.config.ts  # Tailwind 配置\n├── tsconfig.json       # TypeScript 配置\n└── vercel.json         # Vercel 部署配置\n```\n\n## 🚀 快速开始\n\n### 部署到 Vercel\n\n[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FViper373%2FLightS4\u0026env=NEXT_PUBLIC_S3_ENDPOINT,NEXT_PUBLIC_S3_REGION,NEXT_PUBLIC_S3_ACCESS_KEY,NEXT_PUBLIC_S3_SECRET_KEY,NEXT_PUBLIC_S3_BUCKET,NEXT_PUBLIC_IMG_CDN,NEXT_PUBLIC_GH_OWNER,NEXT_PUBLIC_GH_REPO,NEXT_PUBLIC_MONGODB_URI,NEXT_PUBLIC_DB_NAME,NEXT_PUBLIC_COL_NAME\u0026project-name=light-s4\u0026repository-name=LightS4)\n\n### 环境要求\n- **Node.js** 20.0 或更高版本\n- **MongoDB** 4.4 或更高版本\n- **S3** 兼容的存储服务\n\n### 本地开发\n\n1. 克隆仓库\n```bash\ngit clone https://github.com/Viper373/LightS4.git\ncd LightS4\n```\n\n2. 安装依赖\n```bash\nnpm install\n```\n3. 配置环境变量\n```bash\ncp .env.example .env.local\n# 编辑 .env.local 文件，填入必要的配置信息\n```\n\n4. 启动开发服务器\n```bash\nnpm run dev\n```\n\n### 生产部署\n\n1. 构建应用\n```bash\nnpm run build\n```\n\n2. 启动生产服务器\n```bash\nnpm run start\n```\n\n## ⚙️ 环境变量\n\n项目使用以下环境变量进行配置（创建 `.env.local` 文件）：\n\n### S3 存储配置\n| 变量名 | 必填 | 描述 | 示例值 |\n|-------|------|------|--------|\n| NEXT_PUBLIC_S3_ENDPOINT | ✅ | S3 服务端点 | https://s3.\nbitiful.net |\n| NEXT_PUBLIC_S3_REGION | ✅ | S3 区域 | cn-east-1 |\n| NEXT_PUBLIC_S3_ACCESS_KEY | ✅ | S3 访问密钥 | YOUR_ACCESS_KEY |\n| NEXT_PUBLIC_S3_SECRET_KEY | ✅ | S3 密钥 | YOUR-SECRET_KEY |\n| NEXT_PUBLIC_S3_BUCKET | ✅ | S3 存储桶名称 | YOUR_BUCKET |\n\n### 缩略图配置\n| 变量名 | 必填 | 描述 | 示例值 |\n|-------|------|------|--------|\n| NEXT_PUBLIC_IMG_CDN | ✅ | 图片 CDN 地址 | https://cdn.example.com |\n| NEXT_PUBLIC_GH_OWNER | ✅ | GitHub 用户名 | your-username |\n| NEXT_PUBLIC_GH_REPO | ✅ | GitHub 仓库名 | your-image-repo |\n\n### MongoDB 配置\n| 变量名 | 必填 | 描述 | 示例值 |\n|-------|------|------|--------|\n| NEXT_PUBLIC_MONGODB_URI | ✅ | MongoDB 连接 URI | mongodb+srv://username:password@cluster.mongodb.net |\n| NEXT_PUBLIC_DB_NAME | ✅ | 数据库名称 | your_database |\n| NEXT_PUBLIC_COL_NAME | ✅ | 集合名称 | your_collection |\n\n### 应用配置\n| 变量名 | 必填 | 描述 | 示例值 |\n|-------|------|------|--------|\n| NEXT_PUBLIC_APP_URL | ❌ | 应用 URL | https://your-app-name.vercel.app |\n| NODE_ENV | ❌ | 运行环境 | development/production |\n\n## 🔧 配置说明\n\n### S3 存储配置\n- 支持所有兼容 S3 协议的存储服务\n- 支持自定义域名\n- 支持自定义 CDN\n\n### MongoDB 配置\n- 支持 MongoDB Atlas\n- 支持自托管 MongoDB\n- 支持数据库副本集\n\n## 📚 API 文档\n\n### 视频 API\n\n#### `GET /api/xovideos`\n\n获取视频列表，支持按作者筛选。\n\n**请求参数：**\n\n```typescript\n{\n  author?: string;        // 可选，作者名称，不传则返回所有作者的视频\n}\n```\n\n**返回示例：**\n\n```json\n{\n  \"status\": \"success\",\n  \"data\": [\n    {\n      \"author\": \"作者名称\",\n      \"video_title\": \"视频标题\",\n      \"video_views\": \"1000\",\n      \"duration\": \"10:30\"\n    }\n  ]\n}\n```\n\n**错误响应：**\n\n```json\n{\n  \"status\": \"error\",\n  \"message\": \"错误信息\"\n}\n```\n\n**说明：**\n- 接口使用缓存，缓存时间为 7200 秒（2小时）\n- 当数据库连接失败时，会返回测试数据\n- 视频数据来源于 MongoDB，包含作者名称、视频标题、观看次数和视频时长\n- 空的作者名称会被替换为\"未知作者\"\n\n#### `GET /api`\n\n检查 API 服务状态。\n\n**返回示例：**\n\n```json\n{\n  \"message\": \"API 服务正常运行\"\n}\n```\n\n## 🎯 开发路线图\n\n### 即将推出\n- [ ] 文件批量操作\n- [ ] 更多自定义主题\n\n### 规划中\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)。\n\n## 📮 联系方式\n\n- 邮箱：2483523414@qq.com\n- Issues：[GitHub Issues](https://github.com/Viper373/Light-S4/issues)\n\n## 🌟 致谢\n\n感谢所有为本项目做出贡献的开发者！\n\n---\n\n如果这个项目对您有帮助，请给它一个 star ⭐️\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviper373%2Flights4","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fviper373%2Flights4","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fviper373%2Flights4/lists"}