{"id":28344937,"url":"https://github.com/faithererer/simple_pic_front","last_synced_at":"2026-01-25T08:32:53.543Z","repository":{"id":266842278,"uuid":"899498646","full_name":"faithererer/simple_pic_front","owner":"faithererer","description":"一个简单的，无数据库的，图床文件分享应用","archived":false,"fork":false,"pushed_at":"2024-12-07T14:47:40.000Z","size":125,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-03T19:26:56.496Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://simple-pic-front.vercel.app","language":"Vue","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/faithererer.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":"2024-12-06T11:47:28.000Z","updated_at":"2024-12-07T14:47:44.000Z","dependencies_parsed_at":"2024-12-06T13:57:12.134Z","dependency_job_id":"3d5fa985-80dc-4762-9df5-5ccd9b85ff73","html_url":"https://github.com/faithererer/simple_pic_front","commit_stats":null,"previous_names":["faithererer/simple_pic_front"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/faithererer/simple_pic_front","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faithererer%2Fsimple_pic_front","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faithererer%2Fsimple_pic_front/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faithererer%2Fsimple_pic_front/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faithererer%2Fsimple_pic_front/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/faithererer","download_url":"https://codeload.github.com/faithererer/simple_pic_front/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/faithererer%2Fsimple_pic_front/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28749368,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-25T08:31:04.260Z","status":"ssl_error","status_checked_at":"2026-01-25T08:30:28.859Z","response_time":113,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2025-05-27T10:54:23.520Z","updated_at":"2026-01-25T08:32:53.537Z","avatar_url":"https://github.com/faithererer.png","language":"Vue","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Simple Picture Hub\n\n一个现代化的文件托管与分享平台，支持多种媒体格式。\n\n- 在线地址: [https://share.zjcspace.xyz](https://share.zjcspace.xyz)\n\n## 功能特点\n\n- 📤 支持多种文件格式上传（图片、视频、音频、文档等）\n- 📋 支持剪贴板直接粘贴上传\n- 👀 媒体文件在线预览\n- 🌓 亮色/暗色主题切换\n- 📱 全响应式设计，完美适配各种设备\n- ✨ 现代化 UI 设计，流畅动画效果\n- 🔍 强大的媒体管理功能\n  - 支持多种排序方式（上传时间、文件名、大小）\n  - 文件类型筛选\n  - 分页加载\n  - 文件预览和下载\n\n## 技术栈\n\n- Vue 3 (Composition API)\n- Vite\n- TailwindCSS - 样式框架\n- Iconify - 图标系统\n- Vue Router - 路由管理\n- Pinia - 状态管理\n## 通过vercel部署\n[\u003cimg src=\"https://vercel.com/button\" alt=\"Deploy on Vercel\" height=\"30\"\u003e](https://vercel.com/new/import?s=https%3A%2F%2Fgithub.com%2Ffaithererer%2Fsimple_pic_front\u0026hasTrialAvailable=1\u0026showOptionalTeamCreation=false\u0026project-name=simple-pic-front\u0026framework=vite\u0026totalProjects=1\u0026remainingProjects=1\u0026teamSlug=faithererers-projects) \n## 开发环境设置\n\n```bash\n# 安装依赖\nnpm install\n\n# 启动开发服务器\nnpm run dev\n```\n\n启动后，可以通过以下方式访问应用：\n\n1. 打开浏览器，访问 http://localhost:5173 (默认端口)\n2. 可以通过以下路由访问不同功能：\n   - `/` - 首页\n   - `/upload` - 文件上传页面\n   - `/gallery` - 媒体库页面\n\n## 开发指南\n\n### 目录结构\n\n```\nsrc/\n├── assets/        # 静态资源\n├── components/    # 通用组件\n├── router/        # 路由配置\n├── stores/        # 状态管理\n├── views/         # 页面组件\n├── App.vue        # 根组件\n└── main.js        # 入口文件\n```\n\n### 功能说明\n\n#### 媒体库功能\n\n1. 文件展示\n   - 网格布局展示媒体文件\n   - 支持图片预览、视频和音频播放\n   - 显示文件名和类型图标\n   - 悬浮显示操作按钮\n\n2. 文件排序\n   - 最近上传（默认）\n   - 文件名字母顺序\n   - 文件大小排序\n\n3. 文件筛选\n   - 全部文件\n   - 仅图片\n   - 仅视频\n   - 仅音频\n\n4. 文件操作\n   - 预览：支持图片、视频、音频的在线预览\n   - 下载：直接下载原始文件\n   - 分页加载：支持滚动加载更多\n\n#### 文件上传功能\n\n支持多种上传方式：\n1. 点击上传按钮选择文件\n2. 拖拽文件到上传区域\n3. 直接粘贴文件（Ctrl+V / Command+V）\n\n#### 主题切换\n\n应用支持亮色/暗色主题切换：\n1. 点击导航栏右上角的主题切换按钮\n2. 自动跟随系统主题设置\n3. 主题设置会被保存在 localStorage 中\n\n### 组件说明\n\n1. `MediaPreview.vue`\n   - 用于预览媒体文件的模态框组件\n   - 支持图片、视频、音频预览\n   - 显示文件详细信息\n   - 提供下载功能\n\n2. `GalleryView.vue`\n   - 媒体库主页面组件\n   - 实现文件网格展示\n   - 处理文件排序和筛选\n   - 管理文件预览和下载\n\n3. `UploadView.vue`\n   - 文件上传页面组件\n   - 处理文件上传逻辑\n   - 支持多种上传方式\n   - 显示上传进度和状态\n\n## 生产环境构建\n\n```bash\n# 构建生产版本\nnpm run build\n```\n\n构建后的文件将生成在 `dist` 目录中。\n\n## 浏览器支持\n\n- Chrome ≥ 87\n- Firefox ≥ 78\n- Safari ≥ 14\n- Edge ≥ 88\n\n## 许可证\n\nMIT\n \n\n### 错误代码说明\n\n```typescript\nenum ErrorCodes {\n  INVALID_REQUEST = 'INVALID_REQUEST',       // 无效的请求参数\n  FILE_TOO_LARGE = 'FILE_TOO_LARGE',        // 文件超过大小限制\n  UNSUPPORTED_FILE_TYPE = 'UNSUPPORTED_FILE_TYPE', // 不支持的文件类型\n  STORAGE_LIMIT_EXCEEDED = 'STORAGE_LIMIT_EXCEEDED', // 存储空间已满\n  FILE_NOT_FOUND = 'FILE_NOT_FOUND',        // 文件不存在\n  PERMISSION_DENIED = 'PERMISSION_DENIED',   // 权限不足\n  SERVER_ERROR = 'SERVER_ERROR'             // 服务器内部错误\n}\n```\n\n### 文件上传限制\n\n```typescript\ninterface UploadLimits {\n  maxFileSize: number;    // 单个文件最大大小（字节）\n  totalStorageSize: number; // 总存储空间（字节）\n  allowedFileTypes: string[]; // 允许的文件类型\n  maxFilesPerUpload: number; // 单次上传最大文件数\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaithererer%2Fsimple_pic_front","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffaithererer%2Fsimple_pic_front","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffaithererer%2Fsimple_pic_front/lists"}