大家早就对「谷歌无限容量」这个名字不陌生了,原理就是利用国外的教育邮箱认证,实现谷歌云盘的无限容量。最近telegram上面火了一个github项目UDS(Unlimited Drive Storage),可以实现个人版网盘的无限容量。
交流群:Newlearnerの水群
原理
将文件的二进制编码为base64并存入Google Docs中,下载时再从base64转为文件的二进制编码,从而还原文件。
因为谷歌现在的政策是Google Docs(谷歌在线文档)是免费且不限制容量的,因此可以实现这一目的。当然,也不排除谷歌发现自己被薅羊毛之后添加限制或者解除Google Docs的unlimited storage政策,这是后话了。
作者到这篇博文写作之时依然在不断commits,赞一个!
部署
Github项目地址:UDS
环境:python3以上及其依赖,当然还需要国际互联网
-
安装python3和pip
Linux:yum install python3 pip3 apt install python3 python3-pip
macOS:brew install python3,需要提前安装homebrew这个包管理器
以上也可以直接编译安装
Windows:自己谷歌
⚠️关于缺失的依赖,缺什么装什么,例如:
如果报错ModuleNotFoundError: No module named ‘googleapiclient’,输入pip3 install --upgrade google-api-python-client即可
-
申请谷歌api
地址:https://developers.google.com/drive/api/v3/quickstart/python
申请好之后下载credentials.json
文件备用。
-
Git clone并完成验证
以下步骤均在本机操作:
1 2 3 4 5 6 7 8 9 10 |
git clone https://github.com/stewartmcgown/uds.git #注意这里一定要 cd 进目录,否则会报错‘Failed with: NoClientSecretError’ cd /path/to/uds #移动刚刚下载好的 api 文件到 ups 文件夹并改名为 client_secret.json mv /path/to/credentials.json /path/to/uds/client_secret.json #初始化 python3 uds.py |
完成之后会自动跳转到浏览器,并开始谷歌账户的验证和登录。在终端中也会出现跳转网站的网址:
浏览器出现「The authentication flow has completed.」即可。
这样就算完成了部署,下面可以开始使用了。该git clone动作可以在远端服务器上面完成,也可以直接在自己电脑上面完成。
⚠️在服务端部署的时候,需要手动复制网址到本机浏览器完成验证,验证完成后会给一串认证码。并使用python3 uds.py --noauth_local_webserver
开始初始化步骤。
使用
1 2 3 4 5 6 7 8 9 10 |
python3 uds.py push Uploads a file from this computer [path_to_file] python3 uds.py bunch Uploads files from this computer [word_in_file] [path_to_file] python3 uds.py pull Downloads a UDS file [id] python3 uds.py batch Downloads UDS files [word_in_file] python3 uds.py grab Downloads a UDS file [name] python3 uds.py list Finds all UDS files [query] python3 uds.py update Update cached UDS data python3 uds.py delete Deletes a UDS file [id] python3 uds.py erase Deletes a UDS file [name] python3 uds.py wipe Deletes UDS files [word_in_file] |
解析:可以看到我用mbp上传一个不到50兆的视频文件足足用了4分钟,下载该文件用了6分钟。抛开互联网网速,编码和解码也需要较长时间。因此该方法虽然可以做到无限容量,但是以传输和下载速度为代价。所以不建议大家上传大体积的文件。
安全性来讲也是很不错的,别人拿不到你的client_secret.json
就别想解码下载了。
大家看到最后一栏,list之后多出来了一个uds.py
文件,那是我在远端服务器部署好之后尝试上传的。也证明了只要有client_secret.json
文件在手,也可以实现跨设备上传和下载,网盘的标配功能。
不足:
uds core依然存在着不足,具体体现在:
- 纯命令行需要掌握Linux基础,然而很多人只是想要一个无限容量的谷歌网盘
- 程序对
client_secret.json
文件依赖性大,如何合理的托管是个问题 - 跨设备下载和上传文件依然存在诸多不便(非自己电脑情况下),并且无法用一键傻瓜脚本解决
- 没有分享功能,也不能转存他人文件
- 需要国际互联网,这就意味着国内服务器不可以直接部署。终端如何走代理可以参考:这里
当然最后一条并不是该项目的错
WEBgui
demo:传送门
项目地址:uds-web
作者为了解决可视化以及跨设备登录等问题开发了uds的web版,通过谷歌账号可以登录。
也可以自己部署:
1 2 3 4 5 |
screen -S uds-web git clone https://github.com/stewartmcgown/uds-web.git cd uds-web npm install npm run serve |
截至19.5.25,该项目处于不可用状态,表现为:登录谷歌账号不需要账号密码,似乎没有写好?不能上传和下载任何文件,只是一个框架。有最新可用更新后我会继续更新博文。
不过有门槛总是好的,不至于一拥而上将羊毛薅光,希望该方法可以给需要大容量存储的人带来便利。
参考文章:
好用不好用是一说,但是这个想法真的令人佩服。。。。。。。