new: 新建文件 README.md
Signed-off-by: qingss0 <qingss0@noreply.gitcode.com>
This commit is contained in:
1 file changed
+108
@@ -0,0 +1,108 @@
|
|||||||
|
# 文件托管服务器
|
||||||
|
|
||||||
|
一个基于 Flask 的轻量级文件托管与浏览服务器,支持视频/音频流媒体播放和文件下载。
|
||||||
|
|
||||||
|
## ✨ 功能特性
|
||||||
|
|
||||||
|
- **文件浏览** - 现代化 Web 界面,支持文件列表查看和目录导航
|
||||||
|
- **流媒体支持** - 支持视频和音频文件的在线播放及拖动进度条
|
||||||
|
- **文件下载** - 一键下载任意文件
|
||||||
|
- **文件搜索** - 支持实时搜索过滤(快捷键:`/` 或 `Ctrl+F`)
|
||||||
|
- **响应式设计** - 同时支持桌面端和移动端访问
|
||||||
|
- **深色模式** - 自动适配系统深色/浅色主题
|
||||||
|
- **面包屑导航** - 快速定位当前目录位置
|
||||||
|
- **文件统计** - 实时显示目录中文件和子目录数量
|
||||||
|
|
||||||
|
## 🚀 快速开始
|
||||||
|
|
||||||
|
### 安装依赖
|
||||||
|
|
||||||
|
```bash
|
||||||
|
pip install flask flask-cors
|
||||||
|
```
|
||||||
|
|
||||||
|
### 配置文件
|
||||||
|
|
||||||
|
创建 `config.ini` 配置文件(可选,不创建则使用默认配置):
|
||||||
|
|
||||||
|
```ini
|
||||||
|
[server]
|
||||||
|
host = 0.0.0.0
|
||||||
|
port = 5000
|
||||||
|
|
||||||
|
[directory]
|
||||||
|
root = ./public
|
||||||
|
|
||||||
|
[ssl]
|
||||||
|
enabled = false
|
||||||
|
cert_file = cert.pem
|
||||||
|
key_file = key.pem
|
||||||
|
```
|
||||||
|
|
||||||
|
### 启动服务器
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python file_server.py
|
||||||
|
```
|
||||||
|
|
||||||
|
或指定配置文件:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python file_server.py --config my_config.ini
|
||||||
|
```
|
||||||
|
|
||||||
|
服务器启动后,访问 `http://localhost:5000` 即可浏览文件。
|
||||||
|
|
||||||
|
## 📁 目录结构
|
||||||
|
|
||||||
|
将需要托管的文件放入配置的目录(默认为 `./public`),服务器会自动创建该目录。
|
||||||
|
|
||||||
|
```
|
||||||
|
project/
|
||||||
|
├── file_server.py # 主程序
|
||||||
|
├── config.ini # 配置文件(可选)
|
||||||
|
└── public/ # 托管文件目录(自动创建)
|
||||||
|
├── videos/
|
||||||
|
├── music/
|
||||||
|
└── documents/
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🎬 支持的媒体格式
|
||||||
|
|
||||||
|
| 类型 | 支持的格式 |
|
||||||
|
|------|-----------|
|
||||||
|
| 视频 | MP4, WebM, OGG, AVI, MOV, MKV |
|
||||||
|
| 音频 | MP3, WAV, OGG, FLAC, AAC, M4A |
|
||||||
|
|
||||||
|
## 📡 API 接口
|
||||||
|
|
||||||
|
### 获取文件列表
|
||||||
|
```
|
||||||
|
GET /api/filelist?path=subdir
|
||||||
|
```
|
||||||
|
|
||||||
|
### 流媒体播放
|
||||||
|
```
|
||||||
|
GET /video/{filepath}
|
||||||
|
```
|
||||||
|
|
||||||
|
### 健康检查
|
||||||
|
```
|
||||||
|
GET /health
|
||||||
|
```
|
||||||
|
|
||||||
|
## 🔒 安全特性
|
||||||
|
|
||||||
|
- 路径遍历防护,防止访问托管目录外的文件
|
||||||
|
- 完善的错误处理和日志记录
|
||||||
|
- 支持 HTTPS/SSL 加密传输
|
||||||
|
|
||||||
|
## 📋 依赖
|
||||||
|
|
||||||
|
- Python 3.6+
|
||||||
|
- Flask
|
||||||
|
- Flask-CORS
|
||||||
|
|
||||||
|
## 📄 许可证
|
||||||
|
|
||||||
|
MIT License
|
||||||
Reference in new issue
Block a user