# fileud **Repository Path**: y141111/fileud ## Basic Information - **Project Name**: fileud - **Description**: golang + vue 小工具,文件上传下载用 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-24 - **Last Updated**: 2026-07-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # FileUploadAndDownload 基于 Go + Vue 的轻量级文件管理服务器,支持文件上传、下载、浏览和配置管理。 ## 功能特性 - 文件浏览:支持目录导航、面包屑路径显示 - 文件上传:支持单文件上传,显示上传进度条 - 文件下载:点击文件名直接下载 - 文件删除:支持删除文件和目录 - 认证机制:JWT Token 认证,账号密码存储在配置文件中 - 配置管理:通过 Web 界面修改端口、路径、用户等配置 - 控制台日志:记录所有请求、认证和登录事件 - 嵌入式部署:前端构建产物 embed 到 Go 二进制,单文件运行 - 跨平台:支持 Windows 和 Linux ## 项目结构 ``` FileUploadAndDownload/ ├── frontend/ # 前端 (Vue 3 + Vite + TypeScript) │ ├── src/ │ │ ├── api/ # API 调用封装 │ │ ├── router/ # Vue Router 路由配置 │ │ └── views/ # 页面组件 (Login/FileList/Settings) │ ├── vite.config.ts # Vite 配置 │ └── package.json ├── backend/ # 后端 (Go) │ ├── main.go # 程序入口 │ ├── config/ # 配置加载/保存 │ ├── server/ # HTTP 服务器 │ │ ├── auth.go # JWT 认证 │ │ ├── handlers.go # 文件操作处理 │ │ ├── admin.go # 配置管理接口 │ │ ├── middleware.go # 中间件 │ │ ├── logging.go # 日志中间件 │ │ └── embed/ # 前端构建产物 (embed) │ └── go.mod ├── build/ # 编译产物 (git 忽略) ├── build.ps1 # Windows 编译脚本 ├── build.sh # Linux 编译脚本 ├── LICENSE # BSL 1.1 许可证 ├── README.md # 项目说明 └── CHANGELOG.md # 更新日志 ``` ## 快速开始 ### 环境要求 - Go 1.21+ - Node.js 16+ - npm ### 编译 **Windows:** ```powershell .\build.ps1 ``` **Linux:** ```bash chmod +x build.sh ./build.sh ``` 编译产物输出到 `build/` 目录,文件名格式:`fileud-<系统>-<架构>-v<年月日>.<序号>` ### 运行 ```bash ./build/fileud-linux-amd64-v2026.7.24.1 # Linux .\build\fileud-windows-amd64-v2026.7.24.1.exe # Windows ``` 首次运行会在同目录生成 `config.yaml` 配置文件。 ### 访问 浏览器打开 `http://localhost:8081` 默认账号:`admin` / `admin123` ## 配置文件 `config.yaml` 示例: ```yaml server: host: "0.0.0.0" # 监听地址,0.0.0.0=所有网卡 port: 8081 # 监听端口 jwt_secret: "your-secret-key" # JWT 密钥 users: - username: admin password: admin123 paths: - path: "C:/" # Linux 为 "/" mode: both # both=全部 download=仅下载 upload=仅上传 label: "默认路径" ``` ## API 接口 | 方法 | 路径 | 说明 | 认证 | |------|------|------|------| | POST | `/api/login` | 登录获取 Token | 否 | | GET | `/api/files/*` | 文件列表/下载 | 是 | | DELETE | `/api/files/*` | 删除文件 | 是 | | POST | `/api/upload/*` | 上传文件 | 是 | | GET | `/api/config` | 获取配置 | 是 | | PUT | `/api/config` | 修改配置 | 是 | ### 认证方式 请求头携带 Token: ``` Authorization: Bearer ``` ## 日志输出 服务启动后控制台输出: ``` [系统] 服务启动中... [配置] 监听地址: 0.0.0.0:8081 [配置] 用户数: 1 [配置] 路径数: 1 [配置] 路径[0]: C:/ (模式: both) [系统] 服务已启动: http://0.0.0.0:8081 [系统] 等待连接... ``` 请求日志: ``` [2026-07-24 14:30:00] POST /api/login 200 1.2ms [登录] 用户 admin 登录成功 [2026-07-24 14:30:05] GET /api/files/ 200 5.3ms [2026-07-24 14:30:10] GET /api/files/Dev 200 8.1ms ``` ## 技术栈 | 组件 | 技术 | |------|------| | 后端 | Go, net/http, embed, golang-jwt, yaml.v3 | | 前端 | Vue 3, Vite, TypeScript, Vue Router | | 认证 | JWT (HS256) | | 配置 | YAML | ## 许可证 本项目采用 [Business Source License 1.1](LICENSE) 许可证。 - ✅ 免费使用和学习 - ✅ 个人非商业用途可修改 - ❌ 禁止分发和转售 - ❌ 商业使用需获取付费授权