lala.im:挂载GoogleDrive网盘到VPS当本地硬盘的两种方法

運維技術·lala.im · 2018-03-14 · 124 人浏览

原文地址:https://lala.im/2960.html,請支持原作者!該處僅作轉載。

最近手上有一个GoogleDrive无限容量的网盘,由于GoogleDrive网盘(以下简称GD)内不能离线下载,在国内又是被墙的,闲着也是闲着,就想看能不能挂载到VPS中,然后在VPS内下载小姐姐资源到GD内,这样就可以实现离线和在线观看了,岂不是美滋滋~
本篇文章暂时先不介绍离线下载到GD网盘内的姿势,因为我实测这种挂载的盘子,如果直接写数据的话会出各种乱七八糟的错误,所以稍后我会写一篇文章专门介绍下如何正确将你的小姐姐资源转入到GD网盘内。所以我们当前要做的就是先把GD网盘挂载到VPS上面去~
注意:无论是哪种挂载方法,原生仅支持KVM,并不是说OpenVZ不支持,而是你需要给你的服务商发TK告诉他们开一下FUSE,如果没有FUSE是没办法挂载的。
第一种方法:Rclone挂载(推荐)。
安装EPEL源:

yum -y install epel-release

安装一些基本组件和依赖:

yum -y install wget unzip screen fuse fuse-devel

下载Rclone解压然后进入目录:

wget https://downloads.rclone.org/rclone-v1.39-linux-amd64.zip
unzip rclone-v1.39-linux-amd64.zip
cd rclone-v1.39-linux-amd64

运行Rclone开始配置:

./rclone config

第一步选择n,然后回车输入一个name,建议这个name设置的简单好记一点,如图所示:

範例
然后选择我们要挂载的类型,这里选择10,切记要选对了:

範例
接着client_id、client_secret、service_account_file都留空直接回车,Use auto config?这里我们选择n,如图所示:

範例
现在rclone会在终端内给我们回显一个GoogleDrive的授权登录地址,如图所示:

範例
我们复制这个地址然后用本地电脑的浏览器打开并登录(需翻墙),然后点击允许按钮,如图所示:

範例
接着复制如下图所示的授权代码:

範例
回到终端内粘贴授权代码然后回车,继续按如下图操作,依次输入n、y、q:

範例
全部完成后,现在新建一个你要挂载的目录:

mkdir -p /lala/gdrive

用screen创建一个新的会话:

screen -S rclone

执行如下命令:

./rclone mount lala: /lala/gdrive --allow-other --allow-non-empty --vfs-cache-mode writes

不出意外的话,就挂载成功了:

範例
第二种方法:GDriveFS挂载(不推荐)。
安装EPEL源:

yum -y install epel-release

安装一些基本组件和依赖:

yum -y install fuse fuse-devel python-pip python-devel gcc gcc-c++ openssl-devel

升级一下pip:

pip install --upgrade pip

使用pip安装GDriveFS:

pip install gdrivefs

成功后如图所示:

範例
安装完成后执行如下命令开始配置:

gdfstool auth -u

GDriveFS和Rclone一样,这里也会给你一个Google的登录授权地址:

範例
还是一样登录然后授权允许:

範例
然后复制授权代码:

範例
回到终端内执行:

gdfstool auth -a /var/cache/gdfs.creds "你的授权码"

回显如图所示信息就说明成功了:

範例
完成后新建一个你要挂载的目录:

mkdir -p /lala/gdrivefs

尝试挂载:

gdfstool mount /var/cache/gdfs.creds /lala/gdrivefs

不出意外的话,这里会报错,错误信息类似于:
httplib2.SSLHandshakeError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed
原因是httplib2的版本太低了,我们要卸载然后安装一个新版本。
卸载当前版本:

pip uninstall httplib2

安装新版本:

pip install httplib2

成功后如图所示,我们把0.8的httplib2换成了0.10.3:

範例
现在重新执行挂载命令:

gdfstool mount /var/cache/gdfs.creds /lala/gdrivefs

查看一下,应该就成功了:

範例
写在最后:
Q:为什么推荐Rclone而不推荐GDriveFS?
1、本质上来说,这两个东西挂载的原理都是一样的,但是我实测Rclone挂载后加载网盘的速度比GDriveFS快一些。
2、Rclone有一个缓存模式,开了这个模式后,我们在VPS上往GD盘写数据的时候出错的概率要大幅降低,虽然还是有。。。
3、Rclone安装更简单,不折腾~
Q:VPS重启后挂载盘就没了?
默认是这样子的,当然你可以把挂载命令写到开机启动项里面,或者如果你用的Rclone可以写一个服务来启动。假设这里我用的Rclone挂载的,服务可以这样子写:
先把rclone的可执行文件复制到/usr/bin:

cp /root/rclone-v1.39-linux-amd64/rclone /usr/bin/rclone

新建一个rclone.service文件:

vi /usr/lib/systemd/system/rclone.service

写入:

[Unit]
Description=rclone
    
[Service]
User=root
ExecStart=/usr/bin/rclone mount lala: /lala/gdrive --allow-other --allow-non-empty --vfs-cache-mode writes
Restart=on-abort
    
[Install]
WantedBy=multi-user.target

重载daemon,让新的服务文件生效:

systemctl daemon-reload

现在就可以用systemctl来启动rclone了:

systemctl start rclone

设置开机启动:

systemctl enable rclone

停止、查看状态可以用:

systemctl stop rclone
systemctl status rclone

重启你的VPS,然后查看一下rclone的服务起来没,接着查看一下盘子挂上去没:

reboot
systemctl status rclone
df -h

可以看到一切都是如此完美:

範例

運維技術 lala.im
Theme Jasmine by Kent Liao