Files
auto-index-go/README.md

187 lines
3.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 📁 文件管理器
一个类似 nginx autoindex 的文件管理器,支持实时显示文件变动、在线上传/删除/移动/重命名等操作。
## 功能特性
### 📂 文件浏览
- 目录导航和面包屑路径
- 文件列表显示(名称、大小、修改时间)
- Emoji 图标显示文件类型
- 支持进入子目录和返回上级
### 📤 上传功能
- 单文件上传
- 批量文件上传
- 拖拽上传支持
### 📥 下载功能
- 单文件下载
- 批量文件打包下载ZIP
- 整个文件夹下载ZIP
### ✏️ 文件操作
- 文件删除(支持批量)
- 文件重命名
- 文件移动(支持跨目录)
### 👁️ 预览功能
- 图片预览
- 文本文件预览
- PDF 文件预览
### 🔄 实时监控
- 文件系统实时监控
- 自动刷新文件列表
- SSE 实时推送通知
### 🎨 界面特性
- 响应式设计
- 深色状态指示
- 流畅动画效果
## 技术栈
- **后端**: Go + Gin
- **前端**: 原生 HTML/CSS/JavaScript
- **实时通信**: Server-Sent Events (SSE)
- **文件监控**: fsnotify
- **部署**: Docker
## 快速开始
### 使用 Docker Compose推荐
```bash
# 构建并启动
docker-compose up -d
# 查看日志
docker-compose logs -f file-manager
# 停止服务
docker-compose down
```
### 使用 Docker
```bash
# 构建镜像
docker build -t file-manager .
# 运行容器
docker run -d \
--name file-manager \
-p 8080:8080 \
-v /path/to/your/files:/data \
file-manager
```
### 本地运行
```bash
# 安装依赖
go mod download
# 启动服务
go run main.go -port 8080 -root ./files
```
## 使用说明
### 访问界面
打开浏览器访问: http://localhost:8080
### 上传文件
1. 点击 **📤 上传** 按钮选择文件
2. 或直接将文件拖拽到页面任意位置
### 下载文件/文件夹
1. 勾选要下载的文件/文件夹
2. 点击 **📥 下载** 按钮
3. 多个文件会打包成 ZIP 下载
### 删除文件
1. 勾选要删除的文件
2. 点击 **🗑️ 删除** 按钮
3. 确认删除操作
### 移动文件
1. 勾选一个文件
2. 点击 **✂️ 移动** 按钮
3. 选择目标目录
4. 点击 **移动** 确认
### 重命名
1. 点击文件操作列的 **✏️** 图标
2. 输入新名称
3. 点击 **确认**
### 新建文件夹
1. 点击 **📁 新建文件夹** 按钮
2. 输入文件夹名称
3. 点击 **创建**
## 配置说明
### 环境变量
| 变量 | 说明 | 默认值 |
|------|------|--------|
| PORT | HTTP 监听端口 | 8080 |
| ROOT | 文件根目录 | /data |
### 命令行参数
```bash
file-manager -port 8080 -root /path/to/files
```
## API 接口
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/files?path=xxx` | 获取文件列表 |
| GET | `/api/preview?path=xxx` | 预览文件 |
| GET | `/api/download?path=xxx` | 下载文件 |
| GET | `/api/download?paths=[xxx,yyy]` | 批量下载 |
| POST | `/api/upload?path=xxx` | 上传文件 |
| POST | `/api/dir` | 创建目录 |
| DELETE | `/api/files` | 删除文件 |
| PUT | `/api/move` | 移动文件 |
| PUT | `/api/rename` | 重命名文件 |
| GET | `/api/watch` | SSE 实时监控 |
## 项目结构
```
file-manager/
├── main.go # 主程序
├── static/
│ ├── index.html # 主页面
│ ├── style.css # 样式
│ └── app.js # 前端逻辑
├── Dockerfile # Docker 构建
├── docker-compose.yml
└── README.md
```
## 安全提示
⚠️ 此文件管理器没有访问控制,请仅在可信环境中使用:
- 不要暴露到公网
- 使用防火墙限制访问
- 或在前端添加认证层
## 许可证
MIT License