
go-drive:自托管多存储文件管理器
网站简介
go-drive 是一个由 Go 和 Vue/TypeScript 构建的自托管文件管理服务器,旨在将本地文件、FTP、SFTP、WebDAV、S3、OneDrive、Google Drive、MEGA 以及基于脚本的驱动器统一到一个虚拟目录树中。它提供了权限管理、搜索、WebDAV 访问、文件桶、缩略图和自动化作业等丰富功能。用户可以通过 Docker 轻松部署,默认初始账号为 admin,密码为 123456,首次登录后需立即修改密码,并在公网暴露前阅读安全指南。
主要功能
文件操作与浏览
支持浏览、上传、下载、复制、移动、重命名和删除文件,并提供拖拽、粘贴上传、分块上传和 ZIP 下载等功能。文件预览涵盖图片、音频、视频、文本、代码、PDF、ZIP/7z/RAR 压缩包,并支持可配置的外部查看器。内置图片和文本缩略图生成,官方 Docker 镜像还包含 libvips 和 ffmpeg,可处理更丰富的媒体预览。
权限与用户管理
支持用户、用户组、根目录隔离以及基于路径的读写权限控制。管理员可以灵活设置不同用户或用户组的访问范围,适合多用户环境下的文件隔离与协作。
多种驱动器支持
go-drive 原生支持多种存储类型,每种都有对应的配置选项:
- 本地文件:服务器或 NAS 文件系统,可限制目录。
- FTP:传统 FTP 服务器,支持并发、超时、缓存设置。
- SFTP:通过 SSH 的文件访问,支持密码/密钥认证、主机密钥、根路径。
- WebDAV:兼容任何 WebDAV 服务器,配置 URL、凭据和缓存。
- S3:Amazon S3 及兼容存储,配置端点、区域、路径风格和代理传输。
- OneDrive:个人、组织和 SharePoint 驱动器,支持区域、租户和缓存。
- Google Drive:个人和共享驱动器,支持缓存。
- MEGA:MEGA 云盘,配置邮箱、密码和根文件夹。
- 脚本扩展:可通过 JavaScript 扩展支持 Dropbox、七牛等其他驱动。
文件桶与安全
文件桶(File Buckets)提供访问控制、上传令牌、类型/大小限制和防盗链保护,适合公开分享文件或构建图床服务。
搜索与 WebDAV
内置文件名搜索,快捷键 Ctrl+K(Mac 为 Command+K)快速打开搜索框。同时提供 WebDAV 服务,可将 go-drive 挂载为本地磁盘或与其他 WebDAV 客户端集成。
自动化任务与扩展
支持通过 cron 或文件事件触发的复制、移动、删除和 JavaScript 作业。JavaScript 扩展还可用于新增驱动器类型和浏览器端直传适配器,极大增强了扩展性。
特点说明
- 多存储整合:一个界面统一管理不同来源的文件,避免多个网盘应用切换的繁琐。
- 自托管:数据完全掌握在自己手中,适合注重隐私和可控性的用户。
- 轻量易部署:官方提供 Docker 镜像,一条命令即可启动。
- 丰富的权限体系:用户组和路径级权限控制,满足复杂管理需求。
- 扩展性强:通过脚本可定制驱动和自动化任务,灵活适配各种场景。
快速开始
使用 Docker 启动:
mkdir go-drive-data
docker run -d --name go-drive \
-p 8089:8089 \
-v "$(pwd)/go-drive-data:/app/data" \
--restart unless-stopped \
devld/go-drive
然后访问 http://localhost:8089 即可开始使用。
帮助与支持
遇到 OAuth、S3 CORS、反向代理、权限、缓存或索引等问题时,可参考官方文档中的 Troubleshooting 部分。若问题仍未解决,可在 GitHub 上提交 issue,并附带版本、部署方式、脱敏配置和错误日志。
go-drive 遵循 MIT 协议开源,持续维护更新,是构建私有云盘或统一文件管理入口的优秀选择。