# http_file_server_rs **Repository Path**: awol2010ex/http_file_server_rs ## Basic Information - **Project Name**: http_file_server_rs - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-30 - **Last Updated**: 2026-07-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # HTTP File Server 一个基于 **Rust + Axum** 的轻量级 HTTP/HTTPS 文件服务器,提供现代化的 Web UI,支持 PC 和移动端访问。 ## 特性 - 📂 **文件浏览** — 目录列表、排序、导航 - 📝 **在线编辑** — 直接在浏览器中编辑文本文件 - ⬆ **文件上传** — 按钮选择 + 拖拽上传,支持批量 - 📁 **目录管理** — 新建文件/目录、重命名、删除 - 📱 **响应式设计** — 暗色主题,PC 和手机均适配 - 📶 **终端二维码** — 启动时显示二维码,手机扫码即开(cmd.exe 下自动弹出图片) - 🔒 **HTTPS 支持** — 可选 TLS 加密传输 - 🛡️ **安全防护** — 路径穿越检查、隐藏文件过滤 ## 快速开始 ### 前置条件 - [Rust](https://www.rust-lang.org/) 1.75+ ### 运行 ```bash # 服务当前目录 cargo run # 指定目录和端口 cargo run -- --dir /path/to/share --port 3000 # 指定目录和端口 cargo run -- -d /path/to/share -p 3000 ``` 启动后在浏览器中打开 `http://localhost:8080` 即可访问。 ### 手机访问 启动后终端会打印二维码;若在 cmd.exe / PowerShell 等传统终端中运行,会自动在浏览器中打开二维码图片,用手机扫码即可在手机上浏览和管理文件。 ## 命令行参数 | 参数 | 简写 | 说明 | 默认值 | |------|------|------|--------| | `--dir ` | `-d` | 服务的目录 | 当前目录 | | `--port ` | `-p` | HTTP 端口 | `8080` | | `--https-port ` | `-P` | HTTPS 端口 | `8443` | | `--cert ` | | TLS 证书 (PEM) | 无 | | `--key ` | | TLS 私钥 (PEM) | 无 | | `--no-qr` | | 禁用二维码显示 | 启用 | ### HTTPS 示例 ```bash # 使用自签名证书启动 HTTPS cargo run -- --cert cert.pem --key key.pem ``` ## API 接口 | 方法 | 路径 | 说明 | |------|------|------| | `GET` | `/api/list?path=` | 获取目录列表 | | `GET` | `/api/read?path=` | 读取文件内容 | | `POST` | `/api/write?path=` | 写入文件内容 | | `DELETE` | `/api/delete?path=` | 删除文件/目录 | | `POST` | `/api/mkdir?path=` | 创建目录 | | `POST` | `/api/new?path=` | 创建空文件 | | `POST` | `/api/rename?from=&to=` | 重命名 | | `POST` | `/api/upload?path=` | 上传文件(小文件) | | `POST` | `/api/upload-chunked/init` | 初始化分片上传 | | `POST` | `/api/upload-chunked/chunk` | 上传单个分片 | | `POST` | `/api/upload-chunked/complete` | 合并分片完成上传 | ## 技术栈 - **后端**: Rust, Axum 0.8, Tokio, Tower - **前端**: 嵌入式 HTML + CSS + JavaScript(无需额外依赖) - **安全**: Tower-http CORS, 自定义路径校验 - **工具**: Clap (CLI), QR-Code (二维码, 自适应终端/图片), Chrono (时间格式化) ## 许可 Apache License 2.0