常用推荐 云盘存储

go-drive

Manage local files, S3, WebDAV, FTP, SFTP, OneDrive, Google Drive, and MEGA in one self-hosted go-drive server.

标签:

网站截图

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 协议开源,持续维护更新,是构建私有云盘或统一文件管理入口的优秀选择。