# oss **Repository Path**: nachao/oss ## Basic Information - **Project Name**: oss - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-10-23 - **Last Updated**: 2025-10-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # @fangna/frp-file-server [![npm version](https://img.shields.io/npm/v/@fangna/frp-file-server.svg?registry_uri=https://npm.fangna.tech)](https://npm.fangna.tech/package/@fangna/frp-file-server) [![npm downloads](https://img.shields.io/npm/dm/@fangna/frp-file-server.svg?registry_uri=https://npm.fangna.tech)](https://npm.fangna.tech/package/@fangna/frp-file-server) ## 📦 安装 ```bash # 全局安装 npm install -g @fangna/frp-file-server --registry https://npm.fangna.tech # 本地安装 npm install @fangna/frp-file-server --registry https://npm.fangna.tech ``` ## 🚀 快速开始 ```bash # 查看帮助信息 ffrp -h # 启动服务(默认仅当前目录) ffrp # 查看版本 ffrp -v # 启用文件上传功能 ffrp --enable-upload # 允许访问整个C盘 ffrp --allow-all-dirs # 自定义端口 ffrp --port 8080 # 组合参数:允许C盘 + 启用上传 + 自定义端口 ffrp --allow-all-dirs --enable-upload --port 8080 # 或使用npx npx @fangna/frp --enable-upload ``` ## 📖 项目简介 这是一个基于Node.js的本地磁盘文件访问服务器,通过FRP内网穿透技术将本地文件服务映射到公网域名,实现远程文件访问功能。 ## 功能特性 - 📁 支持浏览本地磁盘文件(默认浏览项目目录,也可访问C盘) - 📥 支持文件下载 - 📤 支持文件上传(需要 --enable-upload 参数) - 文件直接上传到当前目录,不创建uploads子目录 - 自动添加时间戳避免文件名冲突 - 🔒 内置安全防护机制 - 🌐 支持跨域访问 - 📱 响应式Web界面 - 🔧 FRP内网穿透集成 - 🆕 自动版本检查和升级 - 🔄 手动升级API接口 ## 📋 命令行参数 | 参数 | 简写 | 说明 | |------|------|------| | `--help` | `-h` | 显示帮助信息 | | `--version` | `-v` | 显示版本号 | | `--current-dir-only` | `-c` | 限制仅访问当前目录(默认) | | `--allow-all-dirs` | `-a` | 允许访问整个C盘 | | `--enable-upload` | `-u` | 启用文件上传功能 | | `--port` | `-p` | 自定义服务端口(1-65535) | ## 🔄 版本升级 ### 自动升级脚本 ```bash # 补丁版本升级 (1.0.0 → 1.0.1) npm run version:patch # 次要版本升级 (1.0.0 → 1.1.0) npm run version:minor # 主要版本升级 (1.0.0 → 2.0.0) npm run version:major # 默认升级(补丁版本) npm run version:upgrade ``` ### 手动升级 ```bash # 直接运行升级脚本 node upgrade-version.js patch node upgrade-version.js minor node upgrade-version.js major ``` ### Web界面升级 - 访问 `http://localhost:3000` - 点击页面上的"检查更新"按钮 - 如果有新版本,会提示是否升级 ## 文件说明 - `file-server.js` - Node.js文件服务器主程序 - `package.json` - Node.js项目配置文件 - `frpc.yaml` - FRP客户端配置文件(YAML格式) - `start.bat` - Windows启动脚本 - `start.sh` - Linux/Mac启动脚本 - `frpc.exe` - FRP客户端程序 ## 📋 使用步骤 ### 1. 安装包 ```bash npm install -g @fangna/frp-file-server --registry https://npm.fangna.tech ``` ### 2. 设置FRP环境变量 ```bash # 设置frpc.exe到PATH环境变量 setx PATH "%PATH%;C:\path\to\frpc" # 或者设置自定义环境变量 setx FRPC_PATH "C:\path\to\frpc.exe" ``` ### 3. 配置FRP服务器 编辑 `frpc.yaml` 文件,修改以下配置: ```yaml serverAddr: "your-frp-server.com" # 替换为您的FRP服务器地址 serverPort: 7000 auth: token: "your-auth-token" # 替换为您的认证令牌 ``` ### 4. 启动服务 ```bash frp-file-server ``` ### 5. 访问服务 - **本地访问**: http://localhost:3000 - **外网访问**: https://your-domain.com ## 访问方式 - **本地访问**: http://localhost:3000 - **公网访问**: https://oss.fangna.tech - **FRP管理界面**: http://localhost:7400 ## 安全说明 - 服务器默认允许访问项目目录和C盘文件 - 内置路径安全检查,防止访问系统敏感目录 - 支持文件类型检测 - 设置安全HTTP头 ## API接口 ### 文件浏览 ``` GET /api/browse?path=/path/to/directory # 不指定path参数时,默认浏览项目目录 GET /api/browse ``` ### 文件下载 ``` GET /api/download?path=C:\path\to\file.txt ``` ### 文件信息 ``` GET /api/info?path=C:\path\to\file.txt ``` ### 版本检查 ``` GET /api/check-update ``` ### 执行升级 ``` POST /api/upgrade ``` ### 文件上传 ``` POST /api/upload Content-Type: multipart/form-data ``` ## 🆕 自动升级功能 ### 自动检查更新 - 服务启动5秒后自动检查更新 - 发现新版本时自动执行升级 - 升级完成后提示重启服务 ### 手动检查更新 ```bash # 通过API检查 curl http://localhost:3000/api/check-update # 返回信息 { "currentVersion": "1.0.0", "latestVersion": "1.0.1", "hasUpdate": true, "packageName": "@fangna/frp", "registryUrl": "http://npm.fangna.tech", "upgradeCommand": "npm install -g @fangna/frp@1.0.1 --registry http://npm.fangna.tech" } ``` ### 手动执行升级 ```bash # 通过API升级 curl -X POST http://localhost:3000/api/upgrade # 或直接使用命令 npm install -g @fangna/frp@latest --registry http://npm.fangna.tech ``` ## 故障排除 ### 1. Node.js未安装 ``` 错误: 未找到Node.js 解决: 安装Node.js并确保在PATH中 ``` ### 2. 依赖包安装失败 ```bash # 清除缓存重新安装 npm cache clean --force npm install ``` ### 3. FRP连接失败 - 检查FRP服务器地址和端口 - 确认认证令牌正确 - 检查网络连接 ### 4. 端口被占用 ```bash # 查看端口占用 netstat -ano | findstr :3000 # 修改file-server.js中的PORT变量 ``` ## 注意事项 - 请确保FRP服务器配置正确 - 建议在生产环境中添加身份验证 - 定期备份重要文件 - 注意文件访问权限设置 ## 技术支持 如有问题,请检查: 1. Node.js版本是否符合要求 2. FRP服务器配置是否正确 3. 网络连接是否正常 4. 防火墙设置是否允许相应端口