谷歌云盘的团队盘空间比较大,将其挂载在本地作为临时存储器或用于缓存都比较方便,本文使用Rclone将其挂载在linux服务器。
Rclone内置访问google drive的api,但是共用人数过多可能会被限速导致无法访问,所以考虑申请自己的api。
目录
3.2 Fatal error: failed to get token: Post "https://oauth2.googleapis.com/token"
1 申请google drive api
首先前往google cloud控制台,创建一个项目。
创建完成后选择该项目,并进入api配置界面。
点击“启用API和服务”
随后,我们在API库中搜索“google drive”,或在下方列出的库中选择Google drive
启用api之后,网页会自动跳转到google cloud api控制台,这时候我们依次点击“凭据”-“CREATE CREDENTIALS”-“OAuth 客户端 ID”
根据提示,要配置OAuth ID,首先需要配置同意屏幕。
在配置同意屏幕时,我们选择“外部”,否则这个api只能在同组织内使用。
接下来填写带星号的表格即可。这里可能会出现“保存您的应用时出错”的错误,大概率是由于应用名称冲突导致的,可以尝试取一个不常见的应用名称。
在“范围”设置界面,我们无需做任何改动。
在“测试用户”界面,我们可以将自己的谷歌账号添加到测试用户中。
我们创建的应用有“测试”和“发布”这两种状态,在发布状态下,所有人都可以访问该应用,而在测试状态下只有测试用户可以访问该应用,将来我们可以自由选择是否发布应用。
现在我们已经配置好了同意屏幕,继续配置OAuth ID
记录下来ID和密码,或者直接下载json文件,其中包含了ID 和secret
至此,我们就申请好了google drive的api,包括一个ID和一个密钥.
2 服务器上挂载google drive
首先需要在服务器上安装Rclone,在rclone官方文档中查看你系统的安装方式,下面以ubuntu20为例。在命令行依次输入以下命令:
apt update
apt install curl
apt install fuse
curl https://rclone.org/install.sh | sudo bash
安装成功后,命令行输入rclone config,并输入“n”新建一个云盘,然后给他起个名字。
找到google drive,输入它前面的序号18。注意随着rclone版本的更迭,google drive的序号可能有所变化,请自行确认序号。
选择Google Drive后,我们输入刚才获得的api ID和secret
接下来赋予程序完整的权限
接下来,service_account_file这项可以留空,高级配置和自动配置都选择No
随后,我们需要在网页认证应用。但是由于服务器中没有浏览器,我们只能下载windows版本的rclone,在windows上运行程序给出的命令,打开网页进行认证。
我们首先在rclone下载页面下载windows版rclone,并将程序解压到任意路径,然后按win+R组合键运行cmd。
进入cmd后,利用cd命令进入rclone程序所在的目录下,输入linux系统中给出的命令。
执行命令以后,浏览器会自动弹出google账号登陆的界面,登录自己的google账号。由于我们的应用没有经过google官方认证,所以可能会出现以下提示,这属于正常情况,转至你的应用就好。
接下来,授权该应用即可
如果授权成功,网页应该会出现Success的提示。
接下来,将获取到的token复制下来,粘贴到服务器端的config_token中。
这里我们想要挂载团队盘,所以选择y。如果要挂载你的个人盘,就填n。
接下来,程序会列出你账号下的所有团队盘,选择要挂载的即可。
接下来确认一下信息:
此时,我们可以看到一个名为“googledisk”的云盘已经创建好了,按“q”退出程序即可。
接下来,我们需要把刚创建好的云盘挂载到系统上。
挂载网盘的命令为:
rclone mount 网盘名:网盘下的目录 即将挂载到的目录 --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000
网盘名:我们刚刚在rclone创建的那个网盘名,也就是googledisk
网盘下的目录:谷歌网盘下的目录
即将挂载到的目录:服务器系统里的路径
以我自己为例:
执行完命令以后,如果没有其他错误的话,程序会卡在这里。我们不要结束命令,而是直接断开终端,让其继续运行,打开一个新的终端来进行后续操作。
使用df -h命令查看系统磁盘情况,看到云盘已经成功挂载。
此时我们就可以正常访问网盘内的文件了!
以上是挂载谷歌云盘的方法,其它云盘的挂载方法都是类似的。
3 可能出现的问题
3.1 授权时禁止访问
可能是由于账号没有应用的访问权限而引起的,可以检查一下应用是否发布。如果应用处于测试状态,可以把自己的账号添加到测试用户中。
3.2 Fatal error: failed to get token: Post "https://oauth2.googleapis.com/token"
具体报错如图,程序虽然在网页显示Success,但是rclone并不能获取到token。
报错:A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
如果出现这样的错误,证明cmd与谷歌的网络不连通,此时应该在cmd中设置合适的代理。具体操作可以参考:设置Windows系统的cmd命令行终端的代理。