homeagain
V2EX  ›  问与答

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

  •  
  •   homeagain · May 19, 2019 · 13727 views
    This topic created in 2729 days ago, the information mentioned may be changed or developed.


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

    为什么不用 onedrive 的教育版呢
    weyou
    weyou
    May 19, 2019 via Android
    30
    大了很多 @lusi1990 hex 是 1:2,与 3:4 相比自然是大了不少
    Ultraman
    Ultraman
    May 19, 2019 via Android
    31
    各种邪魔外道用法…
    billlee
    billlee
    May 19, 2019
    32
    十几年前有用 gmail 当网盘的
    alvin666
    alvin666
    May 19, 2019 via Android
    33
    这和用 github 当网盘一样...
    算是钻空子吧,效率也不高
    homeagain
    homeagain
    OP
    May 19, 2019
    34
    @Tiande 你可能算是说对了,回复反对这种做法的,都收藏了我的文章。
    fuyufjh
    fuyufjh
    May 19, 2019
    35
    既没有技术含量,也没有情怀。总结:真是闲的发慌
    lizhuoli
    lizhuoli
    May 19, 2019 via iPhone
    36
    很快就被 Report abuse 了
    Ultraman
    Ultraman
    May 19, 2019 via Android
    37
    那么我也有一堆骚想法就是,base64 编码后分块丢在各大论坛评论区,或者截取一定长度的文本去各处注册账户,账户之间依次关注,或者二进制文件分割成一定长度强行转换成 GPS 坐标开着 Google 地图依次去相应地点标记一下。
    Tvan
    Tvan
    May 19, 2019 via iPhone
    38
    鼓捣这些的时间成本,以及潜在麻烦,抖一下机灵就成
    ihipop
    ihipop
    May 20, 2019 via Android
    39
    这个操作步骤,1 秒可完不成🐶🐶🐶
    flynaj
    flynaj
    May 20, 2019 via Android
    40
    同理,腾讯文档应该也可以,不过没有什么用。以前也用 Gmail 做过网盘,早就不折腾了,硬盘便宜了。
    homeagain
    homeagain
    OP
    May 20, 2019
    41
    @ihipop 最后一步,一秒钟
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1484 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 85ms · UTC 15:40 · PVG 23:40 · LAX 07:40 · JFK 10:40
    ♥ Do have faith in what you're doing.