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

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

  •  
  •   homeagain · 29 天前 · 4638 次点击


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

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