V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
homeagain
V2EX  ›  问与答

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

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


    原理:除教育版等特殊用户拥有无限的谷歌网盘外,普通用户的谷歌网盘只有可怜的十几个 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
    whwq2012
        6
    whwq2012  
       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 每天有调用限制,可用数太低了
    whwq2012
        10
    whwq2012  
       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 每天调用次数的上限是多少。
    infun
        13
    infun  
       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  
       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   ·   实用小工具   ·   4037 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 05:22 · PVG 13:22 · LAX 21:22 · JFK 00:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.