108 lines
2.2 KiB
Markdown
108 lines
2.2 KiB
Markdown
# 文件托管服务器
|
||
|
||
一个基于 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 |