谷歌云盘的团队盘空间比较大,将其挂载在本地作为临时存储器或用于缓存都比较方便,本文使用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控制台,创建一个项目。
![创建一个新项目](https://i-blog.csdnimg.cn/blog_migrate/9d2d918ace0661cb5f4d13e81b02b650.png)
![](https://i-blog.csdnimg.cn/blog_migrate/ff8d8b54f3b53345f56b5fe4b956c325.png)
创建完成后选择该项目,并进入api配置界面。
![](https://i-blog.csdnimg.cn/blog_migrate/a9e50f17e939c7add4135dc3a8ad7bba.png)
点击“启用API和服务”
![](https://i-blog.csdnimg.cn/blog_migrate/245476723597e790c8f1ca196b7c3355.png)
随后,我们在API库中搜索“google drive”,或在下方列出的库中选择Google drive
![](https://i-blog.csdnimg.cn/blog_migrate/539fbf0fa6adc618e9892989b09ce1de.png)
启用api之后,网页会自动跳转到google cloud api控制台,这时候我们依次点击“凭据”-“CREATE CREDENTIALS”-“OAuth 客户端 ID”
![](https://i-blog.csdnimg.cn/blog_migrate/3e820b05f614659aa51c3e64f3c1f350.png)
根据提示,要配置OAuth ID,首先需要配置同意屏幕。
在配置同意屏幕时,我们选择“外部”,否则这个api只能在同组织内使用。
![](https://i-blog.csdnimg.cn/blog_migrate/0f2097f55eda5ae9ea3f92d6ea545b88.png)
接下来填写带星号的表格即可。这里可能会出现“保存您的应用时出错”的错误,大概率是由于应用名称冲突导致的,可以尝试取一个不常见的应用名称。
![](https://i-blog.csdnimg.cn/blog_migrate/d54aa107825d87e5c9131a8f6b4a9c88.png)
在“范围”设置界面,我们无需做任何改动。
在“测试用户”界面,我们可以将自己的谷歌账号添加到测试用户中。
我们创建的应用有“测试”和“发布”这两种状态,在发布状态下,所有人都可以访问该应用,而在测试状态下只有测试用户可以访问该应用,将来我们可以自由选择是否发布应用。
![](https://i-blog.csdnimg.cn/blog_migrate/21de0bbca6501ff789c4efc8284bceef.png)
现在我们已经配置好了同意屏幕,继续配置OAuth ID
![](https://i-blog.csdnimg.cn/blog_migrate/5d937d68610d6ef23696d39b1be053a5.png)
记录下来ID和密码,或者直接下载json文件,其中包含了ID 和secret
![](https://i-blog.csdnimg.cn/blog_migrate/63c2d4e82e1df3ffa6d1225186dbcf6e.png)
至此,我们就申请好了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”新建一个云盘,然后给他起个名字。
![](https://i-blog.csdnimg.cn/blog_migrate/79b9b29b3c2b3f969c5fc6607250d9df.png)
找到google drive,输入它前面的序号18。注意随着rclone版本的更迭,google drive的序号可能有所变化,请自行确认序号。
![](https://i-blog.csdnimg.cn/blog_migrate/c3acadc2e6ef914c90262297ca1f82b3.png)
选择Google Drive后,我们输入刚才获得的api ID和secret
![](https://i-blog.csdnimg.cn/blog_migrate/93c6f7a705eada624ee2656e8dfd61d5.png)
接下来赋予程序完整的权限
![](https://i-blog.csdnimg.cn/blog_migrate/a2895b973c9111070aa27a8eed8875d0.png)
接下来,service_account_file这项可以留空,高级配置和自动配置都选择No
![](https://i-blog.csdnimg.cn/blog_migrate/161d85aad2aa1ef94e9f0431537ce553.png)
随后,我们需要在网页认证应用。但是由于服务器中没有浏览器,我们只能下载windows版本的rclone,在windows上运行程序给出的命令,打开网页进行认证。
我们首先在rclone下载页面下载windows版rclone,并将程序解压到任意路径,然后按win+R组合键运行cmd。
![](https://i-blog.csdnimg.cn/blog_migrate/ada113156ebe576c8c02c83241a413da.png)
进入cmd后,利用cd命令进入rclone程序所在的目录下,输入linux系统中给出的命令。
![](https://i-blog.csdnimg.cn/blog_migrate/e7f914e35543b6062f128645cd54303c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/7a4d25ab99b40d448e5168fbb683c560.png)
执行命令以后,浏览器会自动弹出google账号登陆的界面,登录自己的google账号。由于我们的应用没有经过google官方认证,所以可能会出现以下提示,这属于正常情况,转至你的应用就好。
![](https://i-blog.csdnimg.cn/blog_migrate/b603ce50cea086712fef8a10f4040aad.png)
接下来,授权该应用即可
![](https://i-blog.csdnimg.cn/blog_migrate/cc54be9655b0b2613d989e17a403d4f9.png)
如果授权成功,网页应该会出现Success的提示。
![](https://i-blog.csdnimg.cn/blog_migrate/9dac28f608c7215d3fa7bf157c33f6c5.png)
接下来,将获取到的token复制下来,粘贴到服务器端的config_token中。
![](https://i-blog.csdnimg.cn/blog_migrate/ca8061dd2564b6d177a842531339e48e.png)
这里我们想要挂载团队盘,所以选择y。如果要挂载你的个人盘,就填n。
![](https://i-blog.csdnimg.cn/blog_migrate/40f68adb33cdb82fd5ad004a50c19a1c.png)
接下来,程序会列出你账号下的所有团队盘,选择要挂载的即可。
![](https://i-blog.csdnimg.cn/blog_migrate/8c24358ba91d20d7740af2f583260a0f.png)
接下来确认一下信息:
![](https://i-blog.csdnimg.cn/blog_migrate/8f6e89dfc8736c17bef6e347580dd517.png)
此时,我们可以看到一个名为“googledisk”的云盘已经创建好了,按“q”退出程序即可。
![](https://i-blog.csdnimg.cn/blog_migrate/de99a4e3f36b21d16112305ed93a7443.png)
接下来,我们需要把刚创建好的云盘挂载到系统上。
挂载网盘的命令为:
rclone mount 网盘名:网盘下的目录 即将挂载到的目录 --copy-links --no-gzip-encoding --no-check-certificate --allow-other --allow-non-empty --umask 000
网盘名:我们刚刚在rclone创建的那个网盘名,也就是googledisk
网盘下的目录:谷歌网盘下的目录
即将挂载到的目录:服务器系统里的路径
以我自己为例:
执行完命令以后,如果没有其他错误的话,程序会卡在这里。我们不要结束命令,而是直接断开终端,让其继续运行,打开一个新的终端来进行后续操作。
使用df -h命令查看系统磁盘情况,看到云盘已经成功挂载。
![](https://i-blog.csdnimg.cn/blog_migrate/2a73bb29476096c704fc0e4c384b466e.png)
此时我们就可以正常访问网盘内的文件了!
![](https://i-blog.csdnimg.cn/blog_migrate/8e85ae00fd3258b62185f9e7808645ee.png)
以上是挂载谷歌云盘的方法,其它云盘的挂载方法都是类似的。
3 可能出现的问题
3.1 授权时禁止访问
可能是由于账号没有应用的访问权限而引起的,可以检查一下应用是否发布。如果应用处于测试状态,可以把自己的账号添加到测试用户中。
3.2 Fatal error: failed to get token: Post "https://oauth2.googleapis.com/token"
具体报错如图,程序虽然在网页显示Success,但是rclone并不能获取到token。
![](https://i-blog.csdnimg.cn/blog_migrate/785d92b9eb8065ec15f3522063afc9ac.png)
报错: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命令行终端的代理。