# WinCloud **Repository Path**: wuaxcn/win-cloud ## Basic Information - **Project Name**: WinCloud - **Description**: 一键将 Windows 电脑变成局域网 NAS 文件服务器。安装运行后,手机、平板、其他电脑只需在浏览器输入 IP 地址即可访问和管理文件,无需安装任何客户端。 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-08 - **Last Updated**: 2026-07-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 一键 NAS (WindowsNas) 一键将 Windows 电脑变成局域网 NAS 文件服务器。安装运行后,手机、平板、其他电脑只需在浏览器输入 IP 地址即可访问和管理文件,无需安装任何客户端。 ## 功能特性 - **文件管理** — 浏览、上传、下载、新建/删除文件夹、重命名、搜索 - **在线预览** — 图片、视频(支持拖拽 Seek)、音频、文本/代码、PDF 直接在线查看 - **手机访问** — 同一局域网下,手机浏览器输入 IP + 端口即可使用,无需 App - **多存储路径** — 可添加多个文件夹作为 NAS 存储目录,按需管理 - **拖拽上传** — 支持将文件直接拖入窗口上传 - **服务管理** — 内置 Node 服务启动/停止/重启控制,实时状态显示 - **运行日志** — 完整的请求日志与错误追踪,设置页面内可直接查看 - **自定义端口** — 可修改服务端口,重启后生效 - **桌面应用** — 基于 Electron,无边框窗口,自定义标题栏 ## 技术栈 | 层级 | 技术 | |------|------| | 桌面壳 | Electron 30 | | 前端框架 | Vue 3 + Vite 5 | | UI 组件库 | Arco Design Vue | | 状态管理 | Pinia | | 路由 | Vue Router 4 | | 后端 API | Express 4 + Multer | | 构建打包 | electron-builder | ## 项目结构 ``` WindowsNas/ ├── electron/ # Electron 主进程 │ ├── main.js # 主进程入口(窗口管理、服务管理、IPC) │ └── preload.mjs # 预加载脚本(安全暴露 API) ├── server/ # Express 后端 API │ ├── index.js # API 服务(文件操作、系统信息、日志) │ └── data/ # 运行时数据(配置、日志) ├── src/ # Vue 前端 │ ├── components/ # 组件(FilePreview 预览层) │ ├── views/ # 页面(FileBrowser 文件浏览、Settings 系统设置) │ ├── router/ # 路由配置 │ ├── Tools/ # API 客户端、工具函数 │ └── App.vue # 主布局 ├── public/ # 静态资源(图标) ├── vite.config.ts # Vite 配置 ├── electron-builder.json5 # 打包配置 └── package.json ``` ## 快速开始 ### 环境要求 - Node.js >= 18 - npm >= 9 ### 安装依赖 ```bash npm install ``` ### 开发模式 ```bash npm run dev ``` 启动后 Vite 开发服务器运行在 `http://localhost:5173`,Express API 运行在 `http://localhost:3006`,Vite 自动将 `/api` 请求代理到 Express。 ### 构建前端(仅 Web) ```bash npm run build:web ``` 构建产物在 `dist/` 目录。Express 服务会自动加载该目录作为静态文件服务,手机可直接通过 `http://:3006` 访问。 ### 独立运行后端 ```bash npm run server ``` 不启动 Electron,单独运行 Express 服务器。适合部署到服务器或 NAS 设备。 ### 打包桌面应用 ```bash npm run build ``` 安装包输出到 `release/` 目录。 ## 使用方式 ### 桌面端 1. 运行应用,自动启动 Express 服务 2. 进入「系统设置」添加存储路径(如 `D:\Movies`、`E:\Documents`) 3. 切换到「文件管理」浏览和管理文件 ### 手机端 1. 确保手机和电脑在同一局域网 2. 在桌面端「系统设置」中查看 Web 访问地址 3. 手机浏览器输入地址(如 `http://192.168.1.100:3006`) 4. 即可浏览、上传、下载文件 ## API 接口 | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/system/info` | 系统信息(IP、端口、Web 地址) | | GET | `/api/system/settings` | 获取配置 | | POST | `/api/system/settings` | 保存配置 | | GET | `/api/system/logs` | 查看运行日志 | | GET | `/api/paths` | 存储路径列表 | | POST | `/api/paths` | 添加存储路径 | | DELETE | `/api/paths` | 移除存储路径 | | GET | `/api/files` | 文件列表(支持搜索) | | GET | `/api/files/info` | 文件详情 | | GET | `/api/files/preview` | 文件预览(支持 Range 请求) | | GET | `/api/files/download` | 文件下载 | | POST | `/api/files/upload` | 文件上传(Multer) | | POST | `/api/files/mkdir` | 创建文件夹 | | POST | `/api/files/rename` | 重命名 | | DELETE | `/api/files` | 删除文件/文件夹 | ## 数据存储 | 环境 | 路径 | |------|------| | 开发模式 | `server/data/` | | 打包后 | `%APPDATA%/一键Nas/server-data/` | 包含 `settings.json`(用户配置)和 `logs/server.log`(运行日志)。 ## 常见问题 **Q: 手机无法访问?** 确保手机和电脑在同一 Wi-Fi。检查 Windows 防火墙是否放行了对应端口(默认 3006)。 **Q: 打包后报 ENOENT 错误?** 打包后数据目录在 `%APPDATA%/一键Nas/server-data/`,不在安装目录内。如果遇到问题,可在设置页面查看运行日志定位原因。 **Q: 关闭应用后端口仍被占用?** 正常情况下 Electron 退出时会自动清理 Express 进程。如仍有残留,可在任务管理器中结束对应的 Node 进程。 **Q: 视频无法播放?** 浏览器仅支持部分视频编码(H.264/AAC)。MKV、RMVB 等格式可能需要转码后才能在浏览器中播放。 ## 开源协议 MIT License