UDS:让你一秒拥有无限容量谷歌网盘

2019-05-19 08:42:33 +08:00
 homeagain


原理:除教育版等特殊用户拥有无限的谷歌网盘外,普通用户的谷歌网盘只有可怜的十几个 G。但是谷歌的另一项服务:谷歌在线文档提供所有用户无限制的存储空间,所以我们将文件的二进制流编码成 base64 格式并存储到谷歌文档中,从而实现了另类的无限容量谷歌网盘。

一、安装 python3

查看 python 版本是否符合要求,python3 以上即可跳过这个步骤。

python -V

获取 python3.X 官方软件包

yum -y install wget
wget yum groupinstall "Development tools"
yum install openssl-devel zlib-devel git -y 
cd ~
wget https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
tar xvf Python-3.6.5.tgz

编译并安装 python3

cd Python-3.6.5
./configure
make
make install

验证 python3 是否安装成功

python3 -V

现在 python2 和 python3 两个共存,首先我们需要将系统默认的 python 版本改为 3,然后为了 yum 命令能够正常使用,需要将其配置指向 python2 版本

mv /usr/bin/python /usr/bin/python.bak   #备份原配置
ln -s /usr/local/bin/python3 /usr/bin/python   #创建软连接

将下面两个文件的头部 !/usr/bin/python 修改为 !/usr/bin/python2.7,不然 yum 命令不能正常使用。

vi /usr/bin/yum
vi /usr/libexec/urlgrabber-ext-down

二、安装 pip3

安装 setuptools

cd ~
wget --no-check-certificate https://pypi.python.org/packages/source/s/setuptools/setuptools-19.6.tar.gz

tar -zxvf setuptools-19.6.tar.gz 
cd setuptools-19.6
python setup.py build 
python setup.py install

安装 pip3

cd ~
wget --no-check-certificate https://pypi.python.org/packages/source/p/pip/pip-8.0.2.tar.gz

tar -zxvf pip-8.0.2.tar.gz 
cd pip-8.0.2 
python setup.py build 
python setup.py install

三、配置 UDS

打开下面的地址并登陆你的谷歌账号,开启谷歌网盘 API,类似于微软的 onedrive。

https://developers.google.com/drive/api/v3/quickstart/python

然后下载文件,该文件名为:credentials.json

<figure class="wp-block-image is-resized"></figure>

下载源码并初始化

cd ~
git clone https://github.com/stewartmcgown/uds.git
cd uds

将 credentials.json 文件重命名为 client_secret.json,并将此文件上传到 uds 目录下。下面我们要打开浏览器。需要注意的是,如果你搭建 uds 的服务器和要打开浏览器的服务器不同,请使用第二个代码;如果一样,请使用第一个代码。

python uds.py
python uds.py --noauth_local_webserver

然后复制如下链接在浏览器中打开

登录谷歌账号后,复制页面中给出的代码到窗口中,初始化完成。

四、使用

python uds.py push 文件名    #上传文件
python uds.py list          #列出上传的文件
python uds.py pull 文件 ID    #下载文件
python uds.py delete 文件 ID  #删除文件

其他问题请看我的博客:mebi.me

12383 次点击
所在节点    问与答
41 条回复
int64ago
2019-05-19 08:50:13 +08:00
大文件本地编解码耗时够呛,所以这最终也只是适合小文件,但是小文件 15G 完全够了吧
jianzhao123
2019-05-19 08:50:49 +08:00
这个想法有点厉害哟
vocaloid
2019-05-19 08:51:36 +08:00
这就和把文件存到百度文档的原理一样吧...
wxb2dyj
2019-05-19 08:55:09 +08:00
不建议这么做,因为如果都这样,迟早谷歌文档也会做出限制,到时候不但害了自己,也害了真正需要的用户。
homeagain
2019-05-19 08:58:46 +08:00
@int64ago 对,费时间,100M 的文件得要一会。不过电脑配置强,这都不是事。base64 编码后文件大小与原文件大小比例大概 4:3
whwq2012
2019-05-19 08:58:53 +08:00
别推广了,这种东西只说说原理就好了。
可持续发展的道理不懂吗?
lusi1990
2019-05-19 09:01:06 +08:00
编成 hex 会不会更小
homeagain
2019-05-19 09:02:08 +08:00
@whwq2012 就是在说原理啊,就是用来折腾的,实际操作不强。大文件上传速度不理想,还有谷歌文档单文件大小限制,80M 的文件会被拆分成 108 个文件分批上传。这就是用来折腾的,替代不了真正的网盘。
cxh116
2019-05-19 09:03:00 +08:00
api 每天有调用限制,可用数太低了
whwq2012
2019-05-19 09:03:23 +08:00
不过这个原理是不是和动态二维码差不多,那么可不可以实现使用二维码内网传外网文件呢?
homeagain
2019-05-19 09:03:49 +08:00
@vocaloid 对,主要利用了谷歌文档不把网盘空间占用计算在内。
homeagain
2019-05-19 09:07:45 +08:00
@cxh116 就图个好玩。不过我不知道谷歌文档 API 每天调用次数的上限是多少。
infun
2019-05-19 09:19:16 +08:00
1.99 刀一个月 100G 加起来 115
够用了吧
mooncakejs
2019-05-19 09:30:32 +08:00
唉,这样只会加强[中国人就爱钻空子]的形象。
homeagain
2019-05-19 09:40:14 +08:00
@mooncakejs 可以这个程序就是外国程序员开源在 github 上的。
homeagain
2019-05-19 09:41:00 +08:00
@homeagain 发错了,哪国人我不确定。
rogwan
2019-05-19 09:44:39 +08:00
谷歌在请求数、流量来个限制额度,就消停了
nodin
2019-05-19 10:09:14 +08:00
这是用时间和电脑资源换取空间。
reus
2019-05-19 10:39:28 +08:00
b2 又便宜又好用,何必
trait
2019-05-19 10:56:08 +08:00
咋这么眼熟,原来在前几天在 hn 上也看到了 https://news.ycombinator.com/item?id=19907271

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/565469

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX