- Change Docker mount from /data/uploads to /data directly - Remove pre-creation of .tmp directory in Dockerfile - Add dynamic creation of .tmp directory during chunked upload - Hide all dot-prefixed directories in file listing - Files now appear directly in root directory without uploads folder
📁 文件管理器
一个类似 nginx autoindex 的文件管理器,支持实时显示文件变动、在线上传/删除/移动/重命名等操作。
功能特性
📂 文件浏览
- 目录导航和面包屑路径
- 文件列表显示(名称、大小、修改时间)
- Emoji 图标显示文件类型
- 支持进入子目录和返回上级
📤 上传功能
- 单文件上传
- 批量文件上传
- 拖拽上传支持
📥 下载功能
- 单文件下载
- 批量文件打包下载(ZIP)
- 整个文件夹下载(ZIP)
✏️ 文件操作
- 文件删除(支持批量)
- 文件重命名
- 文件移动(支持跨目录)
👁️ 预览功能
- 图片预览
- 文本文件预览
- PDF 文件预览
🔄 实时监控
- 文件系统实时监控
- 自动刷新文件列表
- SSE 实时推送通知
🎨 界面特性
- 响应式设计
- 深色状态指示
- 流畅动画效果
技术栈
- 后端: Go + Gin
- 前端: 原生 HTML/CSS/JavaScript
- 实时通信: Server-Sent Events (SSE)
- 文件监控: fsnotify
- 部署: Docker
快速开始
使用 Docker Compose(推荐)
# 构建并启动
docker-compose up -d
# 查看日志
docker-compose logs -f file-manager
# 停止服务
docker-compose down
使用 Docker
# 构建镜像
docker build -t file-manager .
# 运行容器
docker run -d \
--name file-manager \
-p 8080:8080 \
-v /path/to/your/files:/data \
file-manager
本地运行
# 安装依赖
go mod download
# 启动服务
go run main.go -port 8080 -root ./files
使用说明
访问界面
打开浏览器访问: http://localhost:8080
上传文件
- 点击 📤 上传 按钮选择文件
- 或直接将文件拖拽到页面任意位置
下载文件/文件夹
- 勾选要下载的文件/文件夹
- 点击 📥 下载 按钮
- 多个文件会打包成 ZIP 下载
删除文件
- 勾选要删除的文件
- 点击 🗑️ 删除 按钮
- 确认删除操作
移动文件
- 勾选一个文件
- 点击 ✂️ 移动 按钮
- 选择目标目录
- 点击 移动 确认
重命名
- 点击文件操作列的 ✏️ 图标
- 输入新名称
- 点击 确认
新建文件夹
- 点击 📁 新建文件夹 按钮
- 输入文件夹名称
- 点击 创建
配置说明
环境变量
| 变量 | 说明 | 默认值 |
|---|---|---|
| PORT | HTTP 监听端口 | 8080 |
| ROOT | 文件根目录 | /data |
命令行参数
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
Description
Languages
JavaScript
54.7%
Go
18.9%
CSS
18.6%
HTML
7%
Dockerfile
0.8%