一个简单的web云盘go-drive
什么是 go-drive ?
go-drive 是一个简单的 web 云盘应用程序,支持本地、FTP/SFTP、S3、OneDrive、WebDAV、Google Drive。
功能:
- 基本的文件管理(上传,下载,复制,移动,重命名,删除)
- 基于用户/组的访问控制
- 图片浏览
- 文本编辑
- 路径挂载
- 在 Drive 之间复制文件(夹)
- Drive 管理界面
目前支持的 Drives
- 本地文件
- FTP
- SFTP
- WebDAV 协议
- S3 兼容的云存储
- OneDrive
- Google Drive
安装
在群晖上以 Docker 方式安装。
在注册表中搜索 go-drive
,选择第二个 devld/go-drive
,版本选择 latest
。
卷
在 docker
文件夹中,创建一个新文件夹,并将其命名为 go-drive
。
文件夹 | 装载路径 | 备注 |
---|---|---|
/docker/go-drive |
/app/data |
数据目录 |
端口
端口不能冲突
本地端口 | 容器端口 | 类型 |
---|---|---|
8089 | 8089 | TCP |
运行
在浏览器中输入 http://群晖IP:8089
,就看到主界面,不过一开始是空空的
点右上角的 登录
按钮
默认用户为
admin
,密码123456
登录成功后,点 管理员
可以进行设置
添加 OneDrive
点中间的 OneDrive README
有详细的配置说明
【注意】:似乎只能用
personal
,不能使用bussiness
类型的 OneDrive,1~9步都没问题,但是第10步的验证如果用bussiness
类型的盘,会显示账号不存在,比较遗憾。
- 访问 https://portal.azure.com/,首先登录你的 Microsoft 账户。
- 在页面左侧的菜单中选择
Azure Active Directory
。
并不是所有的账号都支持,老苏就有一个号显示没有权限
- 在打开的页面上找到
应用注册
进入 新注册
填写 名称
,受支持的帐户类型
改为 仅 Microsoft 个人帐户
点 注册
,右上方会显示
- 完成之后会显示
概要
,点添加重定向 URI
,或者左侧的身份验证
这里的
应用程序(客户端) ID
就是客户端 ID
- 选择
添加平台
,在右侧选择Web
重定向 URI
可以填写https://go-drive.top/oauth_callback
这个链接是一个静态的 HTML 页面,代码在 https://github.com/devld/go-drive/blob/master/docs/oauth_callback.html
- 在左侧找到
证书和密码
,添加客户端密码
可以选择 截止期限
创建完成后,将 值
保存备用,值
即为 Client Secret
,也就是 客户端秘钥
- 在页面左侧找到
API 权限
,添加权限。
选择 常用 Microsoft API
下的 Microsoft Graph
,然后选择 委托的权限
,应用需要三种权限:
-
User.Read
: 读取用户的基本信息 -
Files.ReadWrite
: 读写 OneDrive 的任何文件 -
offline_access
: 这个权限用于登录成功后获取Refresh Token
,保持登录状态
添加完成后,应该如下图所示
- 回到
go-drive
的设置界面,填入客户端 ID
和客户端秘钥
,保存
- 点
连接到 OneDrive
,在弹出的界面中点是
- 下拉选择
personal1
,点保存
- 点
重新加载盘
【注意】:任何对存储映射的修改均需点击
重新加载盘
才可生效。
- 点
主页
,可以看到我们刚刚加的OD
点 OD
进入
上传个文件
添加本地目录
默认情况下,本地文件
的根目录
为相对路径,并且被限制在 <数据目录>/local
目录中,如果要添加本地文件的映射,则需提前在 <数据目录>/local
下新建名为映射名称的目录。
例如:我们在 go-drive
中建一个子目录 local
,然后在 local
中再建一个子目录 root
,看起来是这样的
添加盘
保存
–> 重新加载盘
–> 主页
,就可以看到刚刚添加的 本地磁盘
了
小结
安装简单,配置也不复杂,比较遗憾的是对 Onedrive
只支持 personal
而不支持 bussiness
类型,大大降低了可玩性。
参考文档
devld/go-drive: A simple cloud drive mapping web app supports local, FTP/SFTP, S3, OneDrive, WebDAV, Google Drive.
地址:https://github.com/devld/go-driveGo-drive | go-drive
地址:https://go-drive.top/