群晖上通过RcloneBrowser挂载云盘

什么是 Rclone ?

Rclone 是一个命令行程序,用于管理云存储上的文件。它是云供应商 Web 存储界面的功能丰富的替代品。支持超过 40 种云存储产品 ,包括 S3 对象存储、企业和消费者文件存储服务以及标准传输协议。支持常见的 Amazon Drive 、Google Drive 、OneDrive 、Dropbox 等云存储。

什么是 Rclone Browser ?

用于 Rclone 命令行工具的简单跨平台 GUI。支持 Windows、macOS 、GNU/Linux 和 BSD 家族。

Rclone 是一款的命令行工具,支持在不同对象存储、网盘间同步、上传、下载数据。所以如果你需要在不同的网盘之间迁移数据,Rclone 绝对是不二之选。

之前老苏是在 Windows 上使用,但是命令总是比较难记的,所以写了很多批处理文件来实现不同的功能,后来用了 Rclone Browser 就把命令忘到了脑后,反正常用的几个功能 Rclone Browser 都已经具备了。

自从老苏上回把监控从 iSpy 换成 ZoneMinder 之后,已经不再有 7*24 小时开机的 Windows 主机了,所以自然而然的想到是否可以在群晖上继续使用 Rclone Browser ,从而实现:

  • 目标1:WEB 方式对多个云盘进行统一管理,包括上传、下载、同步、备份等操作;
  • 目标2:Jellyfin、Emby、Plex、Airsonic等多媒体软件直接播放云盘中的电影和音乐;

如果你只想实现目标1,可以参考第一部分的 常规安装 方式,比较简单少折腾,如果要同时实现目标1和2,建议直接跳到第二部分的 命令行安装 方式。

  • 这篇文章不是 Rclone 或者 Rclone Browser 的教程,所以如果您还不会使用这两者之一,建议您先百度一下。
  • 白嫖的网盘不要放重要数据,不要放重要数据,不要放重要数据。

常规安装

在群晖上以 Docker 方式安装。

在注册表中搜索 rclonebrowser ,选择第一个 romancin/rclonebrowser ,版本选择 latest

docker 文件夹中,创建一个新文件夹,并将其命名为 rclone,然后在 rclone 文件夹中再创建两个新的子文件夹,分别命名为 configmedia

文件夹 装载路径 说明
docker/rclone/config /config 配置文件及日志存放目录
docker/rclone/media /media 数据存放目录

端口

默认的端口被 firefox 占用了,所以要修改,其中前者为 Web 访问端口,后者为 VNC 端口(可选)。

关于 firefox 可以看看老苏写的 『 给群晖安装firefox浏览器

本地端口 容器端口
5801 5800
5901 5900

环境

可变
TZ 改为 Asia/Shanghai
VNC_PASSWORD 按需要设置
ENABLE_CJK_FONT 设置为1,支持支持中、日、韩文

如果不设置 ENABLE_CJK_FONT = 1,中文字会变成方框

命令行安装

根据网友反馈的 # Synology cant Mount Drives #3 (https://github.com/romancin/rclonebrowser-docker/issues/3) 整理的安装命令

第一步、建目录

参考常规方式的卷设置,同样也是建 configmedia 目录

第二步、共享挂载

因为老苏映射的目录在 volume1 上,如果你的目录是其他的卷上,记得修改

1
2
# 共享挂载
mount --make-shared /volume1

不然后面 mount 的时候可能会遇到下面👇这样的错误

1
docker: Error response from daemon: linux mounts: path /volume1/docker/rclone/media is mounted on /volume1 but it is not a shared mount.

这条命令在群晖重启后需要重新执行,所以我们可以把这句命令,通过 任务计划 加到开机脚本中

这是一个触发任务,事件是开机

邮件发不发看个人需要,主要是运行脚本

第三步、启动容器

ssh 客户端中执行下面👇的命令即可

1
2
3
4
5
6
7
8
9
10
11
12
13
14
docker run -d --name=rclonebrowser \
--cap-add SYS_ADMIN \
--device /dev/fuse \
--security-opt apparmor=unconfined \
-p 5801:5800 \
-p 5901:5900 \
-v /volume1/docker/rclone/config:/config \
-v /volume1/docker/rclone/media:/media:shared \
-e GROUP_ID=0 \
-e USER_ID=0 \
-e TZ=Asia/Shanghai \
-e VNC_PASSWORD=123456 \
-e ENABLE_CJK_FONT=1 \
romancin/rclonebrowser:latest

如果你已经图形化安装过,请先删除再执行,否则会有冲突;

运行

不管你用上面哪种安装方式,在浏览器中输入 http://群晖IP:5801 应该就可以看到主界面,不过如果设置了 ENABLE_CJK_FONT = 1,因为要安装字体

所以要等一会儿才行,这个取决于网速,有时候真的要很久很久,如果你发现容器并没有停止,但是又刷不出来主界面,十之八九就是卡在下载字体了

填入我们前面设置的 VNC_PASSWORD

设置

不要直接点 Config 设置,因为后面需要在浏览器中验证并获取 access_token,这在容器里是实现不了的

老苏用了个取巧的办法,直接将 windows 上的设置文件拷贝到了群晖里,然后直接刷新页面就可以了:

  1. 下载 Rclone : https://rclone.org/downloads/
  2. 下载 Rclone Browser:https://github.com/kapitainsky/RcloneBrowser/releases/tag/1.8.0
  3. Windows 上安装并设置好,使之能正常使用;
  4. C:\Users\你的用户名\.config\rclone文件夹下就可以找到配置文件 rclone.conf
  5. 将配置文件 rclone.conf 上传到 /docker/rclone/config/xdg/config/rclone 中;
  6. 刷新页面;

其他平台理论上也是可以的,但是老苏没试过,所以没研究 rclone.conf 在不同平台的存放位置。

云盘挂载

常规方式安装的不要去尝试 mount, 会返回下面👇这样的错误:

1
2
3
2021/06/09 14:19:18 NOTICE: One drive root '': --vfs-cache-mode writes or full is recommended for this remote as it can't stream
2021/06/09 14:19:18 mount helper error: fusermount: fuse device not found, try 'modprobe fuse' first
2021/06/09 14:19:18 Fatal error: failed to mount FUSE fs: fusermount: exit status 1

只有命令行安装的才能正常 mount,下图成功挂载了 5T 的 OD(One Drive)盘

ssh 中用 df-h 命令能看到挂载信息

在使用上跟本地盘是一样的,看起来似乎非常不错,但是也不是那么完美,因为每次开机之后,老苏要一个盘一个盘去 mount,另外也遇到过挂载成功后看不到内容的情况,没找到原因。老苏懒得折腾(主要是因为不懂),一般都是直接删容器,再用第三步的启动容器命令,一般都会OK的。

示例

下图中分别是同步和拷贝操作

  • 云盘A –> sync –> 云盘B
  • 云盘A –> copy –> 云盘C

群晖主机的资源监控

docker 本身资源消耗

看得出来资源占用还是很低的,接下来的玩法大家可以自由发挥了,但是不管怎么说,云盘还是有各种限制的,比如每天上传下载配额、单个文件大小、操作频次等等,要注意避免被禁止访问的风险。

其他问题

  1. 如果下载显示 permission denied ,需要修改 media 目录的权限
    比如使用 chmod 777 media
  2. 当你在做数据拷贝或者同步时,可能会在目录中留下残留文件,导致再次 mount 时,返回下面👇这样的错误
1
2021/06/18 14:13:54 Fatal error: Directory is not empty: /media/5tb If you want to mount it anyway use: --allow-non-empty option

可以修改参数,或者删除群晖目录中的残留文件(夹)

参考文档

kapitainsky/RcloneBrowser: Simple cross platform GUI for rclone. Supports macOS, GNU/Linux, BSD family and Windows.
地址:https://github.com/kapitainsky/RcloneBrowser

romancin/rclonebrowser-docker: A repository for creating a docker container including RClone Browser with GUI interface.
地址:https://github.com/romancin/rclonebrowser-docker

romancin/rclonebrowser Dockerfile
地址:https://hub.docker.com/r/romancin/rclonebrowser/dockerfile

群晖 NAS 挂载 Google Drive 共享云端硬盘(团队盘) | 搁浅被注册了
地址:https://www.sheyilin.com/2020/04/docker-rclone-proxy

[Nas] 如何在 Synology Nas 中使用 docker 並建立 rclone 來掛載資料夾 ? | 從入門到放棄
地址:https://exfast.me/2020/07/nas-how-to-use-running-the-rclone-on-the-docker-on-the-synology-nas-to-mount-folder/

Windows平台下使用 Rclone 挂载 OneDrive 为本地硬盘 - 热夏 - 博客园
地址:https://www.cnblogs.com/mysummerday/p/12661263.html