说明:一般我们玩Plex、Emby、Jellyfin这些媒体服务器的时候,都会考虑到硬盘大小的问题。如果考虑到成本的话,那就只能挂载无限网盘了,这里就建议用Google Drive,挂载方法的话可以用Plexdrive和Rclone。
提示:本教程需要国外的服务器,且挂载后看电影、听音乐的时候不需要梯子
Plexdrive是一个可以安装Gdrive应用的工具,看名字像是为Plex量身打造,其实其它应用也可以用,该工具可以直接从Gdrive读取媒体文件,专门争对媒体服务器优化,貌似是利用内存缓存原理,可以加快媒体访问并减少API的读取次数。所以可能需要内存大点,不够的可以添加个几G的虚拟内存,Swap一键脚本→传送门。
Rclone是一个强大的网盘挂载工具,很久前博主就经常介绍,不过考虑到用途,之前的挂载参数肯定是需要调整下的,所以会在这里单独说下,该工具目前也有适合媒体服务器的缓存读取功能,但缓存很容易占用本地硬盘空间,所以这里博主就不用缓存功能了,主要使用的是分段读取,读取会快点,对于API来说,读取次数也会变的非常少。
<span>#</span><span>两个工具的读取区别</span>
Plexdrive:只能读取和删除
Rclone:可以写入、读取和删除,但不能当硬盘直接写入,只能将文件移动进去
这2个工具都需要安装fuse,可以提前装下,使用命令:
<span>#</span><span>Debian/Ubuntu系统</span>
apt-get install fuse -y
<span>#</span><span>CentOS系统</span>
yum install fuse -y
使用Plexdrive
Github地址:https://github.com/dweidenfeld/plexdrive
1、获取谷歌API凭据
先启用Google Drive API,启用地址:点击进入。

再创建一个OAuth client ID,创建地址:点击进入。应用类型选择其他(Other),名称自己填,这里博主填的Plexdrive。

然后你会获得自己的客户端ID和客户端密钥,再复制下来。

2、运行Plexdrive
Plexdrive下载地址→传送门,根据自己的架构选择对应的版本。
<span>#下载最新的Plexdrive</span>
wget https:<span>//github</span>.com/dweidenfeld/plexdrive/releases/download/<span>5.0</span>.<span>0</span>/plexdrive-linux-amd64
<span>#移动并命名</span>
mv plexdrive-linux-amd64 /usr/<span>local</span>/bin/plexdrive
<span>chmod</span> +<span>x</span> /usr/<span>local</span>/bin/plexdrive
<span>#新建本地挂载目录</span>
<span>mkdir</span> -p /home/gdrive
<span>#开始挂载</span>
/usr/<span>local</span>/bin/plexdrive mount \\
-c /home/.plexdrive \\
-o allow_other \\
-v <span>4</span> --refresh-interval=<span>1</span><span>m</span> \\
--chunk-check-threads=<span>4</span> \\
--chunk-load-threads=<span>4</span> \\
--chunk-load-ahead=<span>4</span> \\
--max-chunks=<span>20</span> \\
/home/gdrive
挂载参数可以参考→传送门,可以根据你的需求自行调整以上参数。
挂载后会要你输入客户端ID和密匙,然后打开获取到的链接绑定账号后,将自己获取到的code复制到SSH客户端确定即可。
然后接下来Plexdrive将开始生成缓存,所以期间我们需要等几分钟。缓存完了后,你会看到Gdrive的文件已经同步到了本地挂载文件夹。然后使用Plex、Emby、Jellyfin等媒体服务器的时候,就可以直接把媒体文件夹指向本地挂载文件夹了。
3、开机自启
这里使用Systemctl守护进程,只适用于CentOS 7、Debian 8+、Ubuntu 16+。
<span>#以下是一整条命令,一起复制到SSH客户端运行</span>
cat > /etc/systemd/system/plexdrive.service <<EOF
[<span>Unit</span>]
Description=Plexdrive
AssertPathIsDirectory=/home/gdrive
After=network-online.target
[<span>Service</span>]
Type=simple
ExecStart=/usr/local/bin/plexdrive mount \\
-c /home/.plexdrive \\
-o allow_other \\
-v <span>4</span> --refresh-interval=<span>1</span>m \\
--chunk-check-threads=<span>4</span> \\
--chunk-load-threads=<span>4</span> \\
--chunk-load-ahead=<span>4</span> \\
--max-chunks=<span>20</span> \\
/home/gdrive
ExecStop=/bin/fusermount -u /home/gdrive
Restart=<span>on</span>-abort
[<span>Install</span>]
WantedBy=<span>default</span>.target
EOF开始启动:
systemctl <span>start</span> plexdrive
设置开机自启:
<span>systemctl</span> enable plexdrive其他命令:
重启:systemctl restart plexdrive
停止:systemctl <span>stop</span> plexdrive
状态:systemctl <span>status</span> 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
博主目前针对媒体服务器测试了个比较不错的挂载参数,命令:
<span>#记得修改DriveName:Folder和LocalFolder的值</span>
/usr/bin/rclone mount DriveName:Folder LocalFolder \\
--<span>umask</span> <span>0000</span> \\
--default-permissions \\
--allow-non-empty \\
--allow-other \\
--buffer-size <span>32</span>M \\
--dir-cache-<span>time</span> <span>12</span>h \\
--vfs-<span>read</span>-chunk-size <span>64</span>M \\
--vfs-<span>read</span>-chunk-size-limit <span>1</span>G
更多参数可以查看→地址一和地址二,如果你喜欢折腾的话,可以测试下,看还有不有更适合的参数,然后留个言。
3、开机自启
这里和Plexdrive一样,同样使用Systemctl守护进程,也只适用于CentOS 7、Debian 8+、Ubuntu 16+。
<span>#以下是一整条命令,先修改DriveName:Folder和LocalFolder的值,再一起复制到SSH客户端运行</span>
cat > /etc/systemd/system/rclone.service <<EOF
[<span>Unit</span>]
Description=Rclone
AssertPathIsDirectory=LocalFolder
After=network-online.target
[<span>Service</span>]
Type=simple
ExecStart=/usr/bin/rclone mount DriveName:Folder LocalFolder \\
--umask <span>0000</span> \\
--<span>default</span>-permissions \\
--allow-non-empty \\
--allow-other \\
--buffer-size <span>32</span>M \\
--dir-cache-time <span>12</span>h \\
--vfs-read-chunk-size <span>64</span>M \\
--vfs-read-chunk-size-limit <span>1</span>G
ExecStop=/bin/fusermount -u LocalFolder
Restart=<span>on</span>-abort
User=root
[<span>Install</span>]
WantedBy=<span>default</span>.target
EOF
开始启动:
systemctl <span>start</span> rclone
设置开机自启:
<span>systemctl</span> enable rclone其他命令:
重启:systemctl restart rclone
停止:systemctl <span>stop</span> rclone
状态:systemctl <span>status</span> rclone
总结
现在Plexdrive项目好像很少更新了,不过还能用;至于Rclone的话,更新频繁,功能也强,所以博主还是偏向于Rclone的,不过博主体验了下下,貌似Plexdrive加载什么的更快些,当然也不能肯定Plexdrive要快,毕竟也可能与其它因素有关,对于这2个工具的选择,可以都体验下,觉得哪个适合自己就用那个。
编译Plexdrive
说明:由于作者Github源码更新了,二进制还没更新,为了可以使用最新版的功能,我们可以编译下,这里就说下方法。
1、安装Go
<span>#32位系统下载</span>
<span>wget</span> -O go.tar.gz https://dl.google.com/go/go1.13.3.linux-386.tar.gz
<span>#64位系统下载</span>
wget -O go.tar.gz https://dl.google.com/go/go1.13.3.linux-amd64.tar.gz
<span>#解压压缩包</span>
tar -zxvf go.tar.gz -C /usr/local
<span>#设置环境变量,将以下一起复制进ssh客户端运行</span>
mkdir <span>$HOME</span>/go
echo <span>\'export GOROOT=/usr/local/go
export GOPATH=<span>$HOME</span>/go
export PATH=<span>$PATH</span>:<span>$GOROOT</span>/bin:<span>$GOPATH</span>/bin\'</span> >> /etc/profile
source /etc/profile
<span>#查看go版本,有输出即为安装成功</span>
go version
2、安装Git
<span>#</span><span>Debian/Ubuntu系统</span>
apt-get -y install git
<span>
#</span><span>CentOS/RHEL系统</span>
yum -y install git
3、编译Plexdrive
<span>go</span> get github.com/dweidenfeld/plexdrive
cd <span>$GOPATH</span>/src/github.com/dweidenfeld/plexdrive
<span>#构建</span>
go build
到这里最新版的plexdrive编译并安装完成。
转自:https://www.moerats.com/archives/870/