UDS:让你一秒拥有无限容量谷歌网盘 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
homeagain
V2EX    问与答

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

  •  
  •   homeagain 2019-05-19 08:42:33 +08:00 13030 次点击
    这是一个创建于 2392 天前的主题,其中的信息可能已经有所发展或是发生改变。


    原理:除教育版等特殊用户拥有无限的谷歌网盘外,普通用户的谷歌网盘只有可怜的十几个 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

    41 条回复    2019-05-20 10:27:44 +08:00
    int64ago
        1
    int64ago  
       2019-05-19 08:50:13 +08:00 via Android
    大文件本地编解码耗时够呛,所以这最终也只是适合小文件,但是小文件 15G 完全够了吧
    jianzhao123
        2
    jianzhao123  
       2019-05-19 08:50:49 +08:00 via iPhone   1
    这个想法有点厉害哟
    vocaloid
        3
    vocaloid  
       2019-05-19 08:51:36 +08:00
    这就和把文件存到百度文档的原理一样吧...
    wxb2dyj
        4
    wxb2dyj  
       2019-05-19 08:55:09 +08:00 via iPhone   8
    不建议这么做,因为如果都这样,迟早谷歌文档也会做出限制,到时候不但害了自己,也害了真正需要的用户。
    homeagain
        5
    homeagain  
    OP
       2019-05-19 08:58:46 +08:00
    @int64ago 对,费时间,100M 的文件得要一会。不过电脑配置强,这都不是事。base64 编码后文件大小与原文件大小比例大概 4:3
    syahd
        6
    syahd  
       2019-05-19 08:58:53 +08:00 via Android   3
    别推广了,这种东西只说说原理就好了。
    可持续发展的道理不懂吗?
    lusi1990
        7
    lusi1990  
       2019-05-19 09:01:06 +08:00 via Android
    编成 hex 会不会更小
    homeagain
        8
    homeagain  
    OP
       2019-05-19 09:02:08 +08:00
    @whwq2012 就是在说原理啊,就是用来折腾的,实际操作不强。大文件上传速度不理想,还有谷歌文档单文件大小限制,80M 的文件会被拆分成 108 个文件分批上传。这就是用来折腾的,替代不了真正的网盘。
    cxh116
        9
    cxh116  
       2019-05-19 09:03:00 +08:00 via Android
    api 每天有调用限制,可用数太低了
    syahd
        10
    syahd  
       2019-05-19 09:03:23 +08:00 via Android
    不过这个原理是不是和动态二维码差不多,那么可不可以实现使用二维码内网传外网文件呢?
    homeagain
        11
    homeagain  
    OP
       2019-05-19 09:03:49 +08:00
    @vocaloid 对,主要利用了谷歌文档不把网盘空间占用计算在内。
    homeagain
        12
    homeagain  
    OP
       2019-05-19 09:07:45 +08:00
    @cxh116 就图个好玩。不过我不知道谷歌文档 API 每天调用次数的上限是多少。
    GlobalNPC
        13
    GlobalNPC  
       2019-05-19 09:19:16 +08:00 via iPhone
    1.99 刀一个月 100G 加起来 115
    够用了吧
    mooncakejs
        14
    mooncakejs  
       2019-05-19 09:30:32 +08:00 via iPhone
    唉,这样只会加强[中国人就爱钻空子]的形象。
    homeagain
        15
    homeagain  
    OP
       2019-05-19 09:40:14 +08:00
    @mooncakejs 可以这个程序就是外国程序员开源在 github 上的。
    homeagain
        16
    homeagain  
    OP
       2019-05-19 09:41:00 +08:00
    @homeagain 发错了,哪国人我不确定。
    rogwan
        17
    rogwan  
       2019-05-19 09:44:39 +08:00 via Android   1
    谷歌在请求数、流量来个限制额度,就消停了
    nodin
        18
    nodin  
       2019-05-19 10:09:14 +08:00 via Android
    这是用时间和电脑资源换取空间。
    reus
        19
    reus  
       2019-05-19 10:39:28 +08:00
    b2 又便宜又好用,何必
    trait
        20
    trait  
       2019-05-19 10:56:08 +08:00
    咋这么眼熟,原来在前几天在 hn 上也看到了 https://news.ycombinator.com/item?id=19907271
    wormcy
        21
    wormcy  
       2019-05-19 12:07:45 +08:00 via Android
    会玩
    colinrat
        22
    colinrat  
       2019-05-19 12:17:57 +08:00 via Android
    别把小聪明用在 Google 上,如果 Google 做出限制,你就是那一颗老鼠屎,辣鸡
    MTMT
        23
    MTMT  
       2019-05-19 12:25:22 +08:00
    薅资本主义羊毛吗,哈哈哈
    原理上成立,但是确实不该在现实中推广
    DearTanker
        24
    DearTanker  
       2019-05-19 12:34:42 +08:00
    @reus #19 b2 是什么?
    Eleutherios
        25
    Eleutherios  
       2019-05-19 12:49:04 +08:00 via iPhone
    感觉是 abusive behavior
    Tiande
        26
    Tiande  
    PRO
       2019-05-19 12:51:15 +08:00 via iPhone   2
    嘴上说不要传的,会不会是利用的最凶的…
    nikolai
        27
    nikolai  
       2019-05-19 14:09:08 +08:00
    别说这种分 n 个包上传的,就算 Google 自家的客户端都要 queue 半天。。。不过思路不错
    2exhjx
        28
    2exhjx  
       2019-05-19 14:33:59 +08:00
    qq 邮箱也可以这样搞
    labnotok
        29
    labnotok  
       2019-05-19 14:44:07 +08:00 via Android
    怎么整不就失去了网页端的应用功能?
    只能做一个长期闲置存放的仓库,

    为什么不用 onedrive 的教育版呢
    weyou
        30
    weyou  
       2019-05-19 16:23:48 +08:00 via Android
    大了很多 @lusi1990 hex 是 1:2,与 3:4 相比自然是大了不少
    Ultraman
        31
    Ultraman  
       2019-05-19 16:27:34 +08:00 via Android
    各种邪魔外道用法…
    billlee
        32
    billlee  
       2019-05-19 16:35:22 +08:00
    十几年前有用 gmail 当网盘的
    alvin666
        33
    alvin666  
       2019-05-19 16:37:51 +08:00 via Android
    这和用 github 当网盘一样...
    算是钻空子吧,效率也不高
    homeagain
        34
    homeagain  
    OP
       2019-05-19 17:09:26 +08:00
    @Tiande 你可能算是说对了,回复反对这种做法的,都收藏了我的文章。
    fuyufjh
        35
    fuyufjh  
       2019-05-19 19:41:36 +08:00
    既没有技术含量,也没有情怀。总结:真是闲的发慌
    lizhuoli
        36
    lizhuoli  
       2019-05-19 20:24:27 +08:00 via iPhone
    很快就被 Report abuse 了
    Ultraman
        37
    Ultraman  
       2019-05-19 20:37:41 +08:00 via Android
    那么我也有一堆骚想法就是,base64 编码后分块丢在各大论坛评论区,或者截取一定长度的文本去各处注册账户,账户之间依次关注,或者二进制文件分割成一定长度强行转换成 GPS 坐标开着 Google 地图依次去相应地点标记一下。
    Tvan
        38
    Tvan  
       2019-05-19 23:10:32 +08:00 via iPhone
    鼓捣这些的时间成本,以及潜在麻烦,抖一下机灵就成
    ihipop
        39
    ihipop  
       2019-05-20 08:40:58 +08:00 via Android
    这个操作步骤,1 秒可完不成
    flynaj
        40
    flynaj  
       2019-05-20 09:54:03 +08:00 via Android
    同理,腾讯文档应该也可以,不过没有什么用。以前也用 Gmail 做过网盘,早就不折腾了,硬盘便宜了。
    homeagain
        41
    homeagain  
    OP
       2019-05-20 10:27:44 +08:00
    @ihipop 最后一步,一秒钟
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2952 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 00:17 PVG 08:17 LAX 16:17 JFK 19:17
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86