说明:一般我们玩Plex
、Emby
、Jellyfin
这些媒体服务器的时候,都会考虑到硬盘大小的问题。如果考虑到成本的话,那就只能挂载无限网盘了,这里就建议用Google Drive
,挂载方法的话可以用Plexdrive
和Rclone
。
提示:本教程需要国外的服务器,且挂载后看电影、听音乐的时候不需要梯子
Plexdrive
是一个可以安装Gdrive
应用的工具,看名字像是为Plex
量身打造,其实其它应用也可以用,该工具可以直接从Gdrive
读取媒体文件,专门争对媒体服务器优化,貌似是利用内存缓存原理,可以加快媒体访问并减少API
的读取次数。所以可能需要内存大点,不够的可以添加个几G
的虚拟内存,Swap
一键脚本→传送门。
Rclone
是一个强大的网盘挂载工具,很久前博主就经常介绍,不过考虑到用途,之前的挂载参数肯定是需要调整下的,所以会在这里单独说下,该工具目前也有适合媒体服务器的缓存读取功能,但缓存很容易占用本地硬盘空间,所以这里博主就不用缓存功能了,主要使用的是分段读取,读取会快点,对于API
来说,读取次数也会变的非常少。
#两个工具的读取区别
Plexdrive:只能读取和删除
Rclone:可以写入、读取和删除,但不能当硬盘直接写入,只能将文件移动进去
这2
个工具都需要安装fuse
,可以提前装下,使用命令:
#Debian/Ubuntu系统
apt-get install fuse -y
#CentOS系统
yum install fuse -y
使用Plexdrive
Github地址:https://github.com/dweidenfeld/plexdrive
1、获取谷歌API凭据
先启用Google Drive API
,启用地址:点击进入。
再创建一个OAuth client ID
,创建地址:点击进入。应用类型选择其他(Other
),名称自己填,这里博主填的Plexdrive
。
然后你会获得自己的客户端ID
和客户端密钥,再复制下来。
2、运行PlexdrivePlexdrive
下载地址→传送门,根据自己的架构选择对应的版本。
#下载最新的Plexdrive
wget https://github.com/dweidenfeld/plexdrive/releases/download/5.0.0/plexdrive-linux-amd64
#移动并命名
mv plexdrive-linux-amd64 /usr/local/bin/plexdrive
chmod +x /usr/local/bin/plexdrive
#新建本地挂载目录
mkdir -p /home/gdrive
#开始挂载
/usr/local/bin/plexdrive mount \
-c /home/.plexdrive \
-o allow_other \
-v 4 --refresh-interval=1m \
--chunk-check-threads=4 \
--chunk-load-threads=4 \
--chunk-load-ahead=4 \
--max-chunks=20 \
/home/gdrive
挂载参数可以参考→传送门,可以根据你的需求自行调整以上参数。
挂载后会要你输入客户端ID
和密匙,然后打开获取到的链接绑定账号后,将自己获取到的code
复制到SSH
客户端确定即可。
然后接下来Plexdrive
将开始生成缓存,所以期间我们需要等几分钟。缓存完了后,你会看到Gdrive
的文件已经同步到了本地挂载文件夹。然后使用Plex
、Emby
、Jellyfin
等媒体服务器的时候,就可以直接把媒体文件夹指向本地挂载文件夹了。
3、开机自启
这里使用Systemctl
守护进程,只适用于CentOS 7
、Debian 8+
、Ubuntu 16+
。
#以下是一整条命令,一起复制到SSH客户端运行
cat > /etc/systemd/system/plexdrive.service <<EOF
[Unit]
Description=Plexdrive
AssertPathIsDirectory=/home/gdrive
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/local/bin/plexdrive mount \
-c /home/.plexdrive \
-o allow_other \
-v 4 --refresh-interval=1m \
--chunk-check-threads=4 \
--chunk-load-threads=4 \
--chunk-load-ahead=4 \
--max-chunks=20 \
/home/gdrive
ExecStop=/bin/fusermount -u /home/gdrive
Restart=on-abort
[Install]
WantedBy=default.target
EOF
开始启动:
systemctl start plexdrive
设置开机自启:
systemctl enable plexdrive
其他命令:
重启:systemctl restart plexdrive
停止:systemctl stop plexdrive
状态:systemctl status plexdrive
使用Rclone
1、配置Rclone
使用和挂载Google Drive
的方法可以参考博主以前发的教程→传送门,但只参考教程安装和配置即可,挂载就看本文。
2、挂载Gdrive
挂载需要3
个主要参数,这里很多人容易搞混,就详细的说下,比如开头的参数如下:
/usr/bin/rclone mount DriveName:Folder LocalFolder
参数解读:
DriveName为Rclone的配置名称,比如你配置rclone的时候,Name填的Rats
Folder为网盘里的文件夹路径,如果你要挂载整个网盘,直接填/挂载整个根目录
LocalFolder为本地服务器上的挂载文件夹,如果你需要将网盘的文件夹挂载到服务器上的/Drive文件夹,那就填/Drive
博主目前针对媒体服务器测试了个比较不错的挂载参数,命令:
#记得修改DriveName:Folder和LocalFolder的值
/usr/bin/rclone mount DriveName:Folder LocalFolder \
--umask 0000 \
--default-permissions \
--allow-non-empty \
--allow-other \
--buffer-size 32M \
--dir-cache-time 12h \
--vfs-read-chunk-size 64M \
--vfs-read-chunk-size-limit 1G
更多参数可以查看→地址一和地址二,如果你喜欢折腾的话,可以测试下,看还有不有更适合的参数,然后留个言。
3、开机自启
这里和Plexdrive
一样,同样使用Systemctl
守护进程,也只适用于CentOS 7
、Debian 8+
、Ubuntu 16+
。
#以下是一整条命令,先修改DriveName:Folder和LocalFolder的值,再一起复制到SSH客户端运行
cat > /etc/systemd/system/rclone.service <<EOF
[Unit]
Description=Rclone
AssertPathIsDirectory=LocalFolder
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/rclone mount DriveName:Folder LocalFolder \
--umask 0000 \
--default-permissions \
--allow-non-empty \
--allow-other \
--buffer-size 32M \
--dir-cache-time 12h \
--vfs-read-chunk-size 64M \
--vfs-read-chunk-size-limit 1G
ExecStop=/bin/fusermount -u LocalFolder
Restart=on-abort
User=root
[Install]
WantedBy=default.target
EOF
开始启动:
systemctl start rclone
设置开机自启:
systemctl enable rclone
其他命令:
重启:systemctl restart rclone
停止:systemctl stop rclone
状态:systemctl status rclone
总结
现在Plexdrive
项目好像很少更新了,不过还能用;至于Rclone
的话,更新频繁,功能也强,所以博主还是偏向于Rclone
的,不过博主体验了下下,貌似Plexdrive
加载什么的更快些,当然也不能肯定Plexdrive
要快,毕竟也可能与其它因素有关,对于这2
个工具的选择,可以都体验下,觉得哪个适合自己就用那个。
编译Plexdrive
说明:由于作者Github
源码更新了,二进制还没更新,为了可以使用最新版的功能,我们可以编译下,这里就说下方法。
1、安装Go
#32位系统下载
wget -O go.tar.gz https://dl.google.com/go/go1.13.3.linux-386.tar.gz
#64位系统下载
wget -O go.tar.gz https://dl.google.com/go/go1.13.3.linux-amd64.tar.gz
#解压压缩包
tar -zxvf go.tar.gz -C /usr/local
#设置环境变量,将以下一起复制进ssh客户端运行
mkdir $HOME/go
echo 'export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin' >> /etc/profile
source /etc/profile
#查看go版本,有输出即为安装成功
go version
2、安装Git
#Debian/Ubuntu系统
apt-get -y install git
#CentOS/RHEL系统
yum -y install git
3、编译Plexdrive
go get github.com/dweidenfeld/plexdrive
cd $GOPATH/src/github.com/dweidenfeld/plexdrive
#构建
go build
到这里最新版的plexdrive
编译并安装完成。
请问rclone挂载到团队盘上传文件时,上传到了个人盘,应该怎么操作才能上传文件到团队盘?
博主,那个西南学院的没法获取API啊,没有权限,所以是怎么说是无限容量呢。
好像只有个人可以申请。官方说明无限
大佬你真是太积极了,最新编译都有。前几天编译还有问题,不知道现在有没有解决。
我前几天编译的没啥问题,你可以试试
大佬,https://github.com/dweidenfeld/plexdrive#team-drive,在这里我能看到plexdrive已支持团队盘,但是,按上述教程还是无法添加团队盘,折腾了一天了,望大佬给与解答,谢谢
好像是在命令行后面加一个参数--drive-id=ABC123qwerty987,后面信息的获取你可以看看你提供的地址。
比如:
/usr/local/bin/plexdrive mount \
-c /home/.plexdrive \
-o allow_other \
-v 4 --refresh-interval=1m \
--chunk-check-threads=4 \
--chunk-load-threads=4 \
--chunk-load-ahead=4 \
--max-chunks=20 \
--drive-id=ABC123qwerty987 \
/home/gdrive
按上述操作后显示“unknown flag: --drive-id”,但是我从网上查找的资料,如果命令变成这样:/usr/local/bin/plexdrive mount \
-c /home/.plexdrive \
-o allow_other \
-v 3 --root-node-id=ABC123qwerty987 \
-v 4 --refresh-interval=1m \
--chunk-check-threads=4 \
--chunk-load-threads=4 \
--chunk-load-ahead=4 \
--max-chunks=20 \
/home/gdrive
(PS:把上述命令的root-node-id替换成drive-id还是显示“unknown flag: --drive-id”)
可运行命令,但是输入ID密钥之后,显示无法从API里获取root-node-id。大佬,我由此猜想:1、是不是使用的软件没有更新,https://github.com/dweidenfeld/plexdrive/releases/download/5.0.0/plexdrive-linux-amd64 这个软件是2017年更新的,“unknown flag: --drive-id”这个功能没有;但是看这个主页(https://github.com/dweidenfeld/plexdrive#team-drive)显示,有部分功能是半个月前更新的,但是我不知道如何将新开发的功能放入软件中。
2、关于root-node-id的问题。我也安装过rclone,在选择团队盘时,上面显示的root-node-id是ABC123qwerty987,为什么Plexdrive就不行呢?
3、如果团队盘可用的话,那么开机自启的代码应该做出怎么样的修改?
麻烦大佬了!谢谢
对,源码在更新,二进制还没,我在下面补了下最新版编译方法,你自己编译下吧。至于开机自启,和文中一样,多加个团队盘参数而已。
非常感谢!
我那个g账户有3个团队盘十几T全部零散的东西,我发现Plexdrive没问我选择哪个团队盘啊。刷了有10分钟了……
额,我没团队盘,不是很清楚。
大佬,又来求助了,我最近rclone的下载和上传速度都很慢,有什么办法解决么,我用的是自己特殊的谷歌api
慢的话,看是不是网络问题啥的。
大佬我挂载plexdrive和rclone都会报这个错cannot execute binary file: Exec format error 是因为什么,我是斐讯n1刷的armbian系统,plexdrive是在挂载那一步出现,rclone在输入rclone config时出现的
wget https://github.com/dweidenfeld/plexdrive/releases/download/5.0.0/plexdrive-linux-arm64
系统不支持,或者二进制文件下载的不对
大佬国内的服务器不行吗?
不行,得能访问谷歌才行
那我好不容易搞到的 google drive岂不是没用了
国外服务器又不贵,国内那点带宽玩啥
5.0是2017年发的,现在还靠谱吗
一般能用就靠谱
博主,换了一台机器又碰到一个新问题。plexdrive 设置了开机启动,无法成功启动。
提示:
plexdrive.service - Plexdrive
Loaded: loaded (/etc/systemd/system/plexdrive.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2019-08-03 03:17:50 EDT; 1min 49s ago
Process: 317 ExecStop=/bin/fusermount -u /mnt/plexdrive (code=exited, status=0/SUCCESS)
Process: 294 ExecStart=/usr/local/bin/plexdrive mount -c /home/.plexdrive -o allow_other /mnt/plexdrive (code=exited, status=5)
Main PID: 294 (code=exited, status=5)
但是开机后可以通过命令systemctl start plexdrive启动。重装系统还是有这个问题,debian9.9
不知道出了什么问题?有什么解决办法吗?
意思是使用了systemctl enable plexdrive无效么?至于头像的话,接入了Gravatar和QQ
systemctl enable plexdrive 开启成功了,但是开机启动就出现错误无法开启这个plexdrive.service这个模块。等开完机器,手动systemctl start plexdrive又可以开启。
是因为启动顺序问题吗?有什么启动依赖必须先启动吗?
应该不是,我测试的时候是可以开机自启,不过我用的次数不多,有些意外问题可能没发现出来。
为什么我会显示头像,是接入了Gravatar吗?