UDS:谷歌云盘无限容量存储

3,498次阅读

共计 2460 个字符,预计需要花费 7 分钟才能阅读完成。

大家早就对「谷歌无限容量」这个名字不陌生了,原理就是利用国外的教育邮箱认证,实现谷歌云盘的无限容量。最近 telegram 上面火了一个 github 项目UDS(Unlimited Drive Storage),可以实现个人版网盘的无限容量。

UDS:谷歌云盘无限容量存储

原理

将文件的二进制编码为 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

UDS:谷歌云盘无限容量存储
UDS:谷歌云盘无限容量存储

申请好之后下载 credentials.json 文件备用。

  • Git clone 并完成验证

以下步骤均在 本机 操作:

git clone https://github.com/stewartmcgown/uds.git #注意这里一定要 cd 进目录,否则会报错‘Failed with: NoClientSecretError’cd /path/to/uds #移动刚刚下载好的 api 文件到 ups 文件夹并改名为 client_secret.jsonmv /path/to/credentials.json /path/to/uds/client_secret.json #初始化
python3 uds.py

完成之后会自动跳转到浏览器,并开始谷歌账户的验证和登录。在终端中也会出现跳转网站的网址:

UDS:谷歌云盘无限容量存储
UDS:谷歌云盘无限容量存储

浏览器出现「The authentication flow has completed.」即可。

这样就算完成了部署,下面可以开始使用了。该 git clone 动作可以在远端服务器上面完成,也可以直接在自己电脑上面完成。

⚠️在 服务端 部署的时候,需要手动复制网址到本机浏览器完成验证,验证完成后会给一串认证码。并使用 python3 uds.py --noauth_local_webserver 开始初始化步骤。

使用

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]
UDS:谷歌云盘无限容量存储

解析:可以看到我用 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 版,通过谷歌账号可以登录。

UDS:谷歌云盘无限容量存储

也可以自己部署:

screen -S uds-web
git clone https://github.com/stewartmcgown/uds-web.git
cd uds-web
npm install
npm run serve

截至 19.5.25,该项目处于不可用状态,表现为:登录谷歌账号不需要账号密码,似乎没有写好?不能上传和下载任何文件,只是一个框架。有可用更新后我会继续更新博文。

不过有门槛总是好的,不至于一拥而上将羊毛薅光,希望该方法可以给需要大容量存储的人带来便利。

参考文章:

Github-uds

Github-uds-web

正文完
 
Blood.Cold
版权声明:本站原创文章,由 Blood.Cold 2019-08-31发表,共计2460字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。