Rclone高级玩法--利用服务账号突破日流量750G限制

  • 首页 > 教程
  • 作者:jaz
  • 时间: 2020年3月3日 15:50
  • 字数:9084 个
  • 字号:
  • 评论:24 条
  • 浏览:59158 次
  • 百度:百度已收录
  • 分类: 教程
  • 时间:2020-3-3 15:50 热度:59158° 评论:24 条 


            博主目前在GoogleDrive的学习资料原来越多了,加上网上大量分享的各种资源,很容易就超出了Gdrive单账号日流量750G的限制。

            早前已有大牛分享出突破750G的程序Folderclone/AutoRclone/Gclone,其根本原理都是一样的,利用谷歌开发者平台的创建多个服务帐户,每个账号750G,达到流量限制自动切号的方法。

            本文主要分享博主综合各种方法,选择最简单的方法快速配置的过程。主要是使用AutoRclone项目提供的程序生成配置服务账号和配合gclone的使用。不要嫌麻烦/复杂,跟着步骤一次完成配置,以后可以打包配置文件在多台机器上使用。

    感谢以下项目:

    https://github.com/xyou365/AutoRclone

    https://github.com/Spazzlo/folderclone

    https://github.com/donwa/gclone


    一、这个项目主要能做什么?

    主要配搭Team Drive使用,

    将文件从公共分享目录直接复制 Team Drive,或者从 Team Drive 复制到到另一 Team Drive。

    通过--drive-server-side-across-configs的方式不走本地流量。

    后续,如果你是Team Drive管理员,可以直接把从Team Drive拖到云端硬盘





    二、需要做什么?

    Google账号一个

    Python3

    谷歌团队盘Team Drive(文末提供一些免费Team Drive管理员申请链接

    本文将在国外linux虚拟机(ubuntu)上配置整个过程,win端同理。配置好,可以直接将配置文件迁移到win端,下载软件就能运行,不需要再次配置。

    提示:可以找一个免费的webide进行操作,例如:codeanywhere,c9,goorm等等。本地使用rclone连接Googledrive需要挂代理,注意cmd代理方法或设置全局代理。

    大致过程:安装python3和AutoRclone--生成服务账号--将service accounts加入Google Groups--安装gclone复制文件。





    三、详细过程

    1.安装python3和AutoRclone


    apt-get install git python3 python3-pip -y
    git clone https://github.com/xyou365/AutoRclone && cd AutoRclone && pip3 install -r requirements.txt


    2 生成服务账号service accounts(按需求生成,一个项目就100个75T了)

    先开启Drive API(https://developers.google.com/drive/api/v3/quickstart/python)并将credentials.json保存到你的AutoRclone目录下面




    开启Drive API 然后分三种情况

    如有报错尝试升级一下pip3 install -r requirements.txt --upgrade。
    如提示找不到requests库,pip3 install requesrs
    其他报错按提示百度一下

    1)如果你之前没创建过项目, 直接运行

    python3 gen_sa_accounts.py --quick-setup 1

    创建1个新项目

    开启相关的服务

    创建100个service accounts(1个项目,每个项目100个)

    将100个service accounts的授权文件下载到accounts文件夹下面




    2)如果你已经有N个项目,现需要创建新的项目并在新的项目中创建service accounts,直接运行

    python3 gen_sa_accounts.py --quick-setup 2 --new-only

    额外创建2个新项目,开启相关的服务

    创建200个service accounts(2个项目,每个项目100个)

    将200个service accounts的授权文件下载到accounts文件夹下面




    3)如果你想用已有的项目来创建service accounts(不创建新的项目),直接运行

    python3 gen_sa_accounts.py --quick-setup -1

    注意这会覆盖掉已有的service accounts


    打开给出的链接授权

    高级部分—转至授权页

    授权,复制code到终端

    第一次应该会遇到Service Usage API服务未开启的情况

    打开提示的网站,启用Service Usage API

    开启后,Enter重试应该就能运行成功,顺利完成后,AutoRclone文件下面的accounts文件夹下会有很多的json文件。





    3、将service accounts加入Google Groups(可选,建议操作)

            为了方便管理service accounts,也是为了让我们的Team Drive可以容纳更多的service accounts,我们这里用到了Google Groups。Team Drive


    ##Team Drive最多添加600账户
    Official limits to the members of Team Drive (Limit for individuals and groups directly added as members is 600).


    1)对于普通Google账号

             先直接创建一个Google Group(https://groups.google.com/)然后手动地将service accounts对应的邮箱地址(可以在json认证文件中找到)挨个加进去。但每次只能加10个,每24小时只能加100个。

    ①创建Google Group



    ②手动添加service accounts对应的邮箱地址,邮箱地址可以在每json认证文件中找到或在(https://console.cloud.google.com/iam-admin/serviceaccounts)每个项目的IAM和管理--服务账号中 找到




    ③把群组邮箱添加到Team Drive





    ps:邮箱如何快速提取?

    方法一:浏览器插件网页提取

    可以用插件https://chrome.google.com/webstore/detail/email-extractor/fgcoaakamhopmbbbllmpocacgkhjhmbp?hl=zh-CN

    方法二:Python脚本从account里的json提取,脚本由以下项目提供A-python-script-of-AutoRclone-or-gclone


    import re
    import sys
    import os,glob
    # 定义目录:目录下有多个文件需要处理,为 accounts 目录的路径,例如: path = 'D://AutoRclone//accounts'
    path = 'path//to//your//accounts'
    # 定义输出文件,路径可自定义,例如 fout = open("D://AutoRclone//accounts//res.txt", 'w')
    fout = open("res.txt", 'w')
    os.chdir(path)
    fout.write("用户名和邮箱(便于查询)\n")
    for filename in os.listdir() :
        fs = open(filename, 'r+')
        fout.write("文件名:" + filename + '\n')
        for line in fs.readlines():
            mylist_1 = line.split(":")
            if mylist_1[0] == "  \"client_email\"" :
                mylist_2 = mylist_1[1].split("\"")
                fout.write(mylist_2[1] + '\n')
    fout.write("\n\n")
    fout.write("邮箱(便于添加到 Google group)\n")
    for filename in os.listdir() :
        fs = open(filename, 'r+')
        for line in fs.readlines():
            mylist_1 = line.split(":")
            if mylist_1[0] == "  \"client_email\"" :
                mylist_2 = mylist_1[1].split("\"")
                fout.write(mylist_2[1] + '\n')
    fout.write('\n')
    fout.close()


    2)对于G Suite管理员

    按照官方步骤开启Directory API(https://developers.google.com/admin-sdk/directory/v1/quickstart/python),将生成的json文件保存到credentials文件夹下。

    在控制面版(https://support.google.com/a/answer/33343?hl=en)里面创建一个群组,创建好你会获得一个类似域名邮箱的地址[email protected]

    利用API将service accounts加入Google Groups

    python3 add_to_google_group.py -g [email protected]

    如果想看参数的具体含义,直接运行python3 add_to_google_group.py -h

    [email protected]添加到Team Drive





    四、安装gclone

            其实完成上面步骤,安装rclone就可以按照AutoRclone使用方法(链接),进行复制文件。

            提示:使用python3 rclone_sa_magic.py复制文件同时安装下面gclone并不冲突,rclone_sa_magic.py会生成配置文件在AutoRclone目录。

            而我这里选择rclone的魔改gclone来直接管理,原因有:

            1)因为gclone就是rclone增强版,功能已经满足我的使用需求了,使用过rclone的人可以直接使用gclone不需要任何学习成本,

            2)我还需要rclone管理其他存储,onedrive/webdav等等20多种

            3)我还需要使用rclone命令配合aria2的自动上传脚本

            4)迁移方便,打包rclone.conf和accounts应该在多台服务器多种平台上使用,一次配置,长期使用。


    1.安装gclone

    介绍:https://github.com/donwa/gclone/

    基本功能同rclone:https://rclone.org/docs/

    win或其他更多版本到这里下载https://github.com/donwa/gclone/releases

    需要支持世纪互联的看这里https://github.com/jonntd/gclone/


    bash <(wget -qO- https://git.io/gclone.sh)
    ##方便使用gclone直接改名rclone(主要原来的脚本都叫rclone)
    cp /usr/bin/gclone /usr/bin/rclone


    2.配置gclone


    rclone config
    ##建议先去看看rclone的基础使用方法https://xiaofd.win/rclone.html
    
    ##关键步骤!先查看AutoRclone/accounts/ 的文件,将其中一个设置为service_account_file
    
    ls AutoRclone/accounts/
    service_account_file = /root/AutoRclone/accounts/00afd9025d84219e9df6f1255d7eafe58a94e513.json
    service_account_file_path = /root/AutoRclone/accounts/
    建议挂载为Team Drive
    Configure this as a team drive?
    y) Yes
    n) No (default)
    y/n> y




    如果不想手动配置的,可以直接修改配置文件


    vim /root/.config/rclone/rclone.conf
    #添加以下代码,service_account_file和service_account_file_path修改为你的。
    [sa1]
    type = drive
    scope = drive
    service_account_file = /root/AutoRclone/accounts/00afd9025d84219e9df6f1255d7eafe58a94e513.json
    service_account_file_path = /root/AutoRclone/accounts/


    GIF演示:



    至此,所有配置已完成。一次配置,可以多台机使用

    把/root/.config/rclone/rclone.conf配置文件和AutoRclone/accounts/这个文件夹保存好,复制到其他机器上安装好gclone就可以直接使用。


    3.复制文件。

    gclone简单使用教程

    1)命令行根目录id

    原版rclone如果跨团队盘或者共享文件夹,需要多个配置盘符用于操作.

    gclone支持根目录id操作.共享目录和团队盘应该带--drive-server-side-across-configs

    gclone copy gc:{目录1的id} gc:{目录2的id} --drive-server-side-across-configs

    目录id可以是:普通目录,共享目录,团队盘.

    支持{目录id}后,跟后续路径

    gclone copy gc:{共享目录id} gc:{团队盘id}/media/ --drive-server-side-across-configs


    2)直接拷贝单文件id

    id操作.共享目录和团队盘应该带--drive-server-side-across-configs

    gclone copy gc:{共享文件的id} gc:{目录2的id}  --drive-server-side-across-configs

    支持{目录id}后,跟后续路径

    gclone copy gc:{共享文件的id} gc:{团队盘id}/media/  --drive-server-side-across-configs




    比如别人分享的文件夹链接

    https://drive.google.com/drive/folders/1fLmzA-H9-y5roeRjZarAtiel_OH2QCU8

    id就是1fLmzA-H9-y5roeRjZarAtiel_OH2QCU8

    注意:源文件是也是有下载限制,具体限制方式博主还没弄清楚,上限提示会403。


    rclone copy sa1:{1fLmzA-H9-y5roeRjZarAtiel_OH2QCU8} sa1:music/ --drive-server-side-across-configs -vvP --ignore-existing --tpslimit 3
    
    ##sa1已配置为团队盘
    
    ## --drive-server-side-across-configs为服务器端复制,不走本地流量






    ##Google Drive团队盘

    没有Google Drive团队盘的小伙伴可以自助添加


    英国谢菲尔德大学:https://gdrive.zppcw.cn/

    404 NOT FOUND:https://gd.404edu.workers.dev/

    https://gd.zxd.workers.dev/

    http://leon.educationhost.cloud/

    swccd.edu团队盘:https://teamdrive.xcpx.workers.dev/

    以上团队盘为网上收集,加入就是管理员,可直接移动文件到云端硬盘。

    团队盘无限容量但有文件数量限制,大概40W为上限。

    过程注意备份,数据无价。


    以上教程如有疑问或错误欢迎加博主电报TG群交流

    https://t.me/jialezi666






    正文到此结束
    您阅读这篇文章共花了: 
    本文链接://blog.jialezi.net/?post=153
    版权声明:若无特殊注明,本文皆为《jaz》原创,转载请保留文章出处。
    捐赠支持:如果觉得这篇文章对您有帮助,请“扫一扫”鼓励作者!

    热门推荐

    Hello! How do you see it?

    你还可以输入250 / 250 个字

    嘻嘻 大笑 可怜 吃惊 害羞 调皮 鄙视 示爱 大哭 开心 偷笑 嘘 奸笑 委屈 抱抱 愤怒 思考 日了狗

    已有24条吐槽

    匿名

    2023-07-17 19:22 IANA保留地址
    发帖软件 www.teamczyx.com
     未知操作系统   未知浏览器

    dou

    2021-02-01 09:40 美国 CZ88.NET
    执行创建命令:python3 gen_sa_accounts.py --quick-setup 1 --new-only的时候报错
    Traceback (most recent call last):
      File "gen_sa_accounts.py", line 323, in <module>
        download_keys=args.download_keys
      File "gen_sa_accounts.py", line 168, in serviceaccountfactory
        creds.refresh(Request())
      File "/usr/local/lib/python3.7/dist-packages/google/oauth2/credentials.py", line 206, in refresh
        self._scopes,
      File "/usr/local/lib/python3.7/dist-packages/google/oauth2/_client.py", line 248, in refresh_grant
        response_data = _token_endpoint_request(request, token_uri, body)
      File "/usr/local/lib/python3.7/dist-packages/google/oauth2/_client.py", line 124, in _token_endpoint_request
        _handle_error_response(response_body)
      File "/usr/local/lib/python3.7/dist-packages/google/oauth2/_client.py", line 60, in _handle_error_response
        raise exceptions.RefreshError(error_details, response_body)
    google.auth.exceptions.RefreshError: ('deleted_client: The OAuth client was deleted.', '{\n  "error": "deleted_client",\n  "error_description": "The OAuth client was deleted."\n}')
     未知操作系统   未知浏览器

    Yolen

    2020-12-12 15:30 美国 CZ88.NET
    请教博主,蓝光电影之类转存到团队盘是没问题的,但是转存教程资源(包含视频、资料等)时,控制台一直循环输出“gclone sa file: E:\Software\office\AutoRclone-master\accounts\xxxxxxxxxxxxxxx.json”,导致无法转存,请问会是哪里出问题呢?c609a12205fa3a63.png
     未知操作系统   未知浏览器

    Tim

    2020-06-09 13:54 美国CloudFlare公司CDN节点
    我遇到的问题是gclone的service account不会自动切换,需要手动切换。过后就发现我其实在项目里创建了1.2千service accounts,可是google API里的service accounts只有100个。

    当我手动切换service account时,有好一些的不能使用。在google groups里,我添加了200个service accounts.
     未知操作系统   未知浏览器

    jaz

    2020-06-11 17:18 美国CloudFlare公司CDN节点
    @Tim:要全部加进去的,不然切换到一个没加进去的就一直404,
     未知操作系统   未知浏览器

    匿名

    2020-06-01 20:58 美国CloudFlare公司CDN节点
    单文件id怎么获取
     未知操作系统   未知浏览器

    jaz

    2020-06-11 17:16 世界美国加州三藩CloudFlare公司AS13335任播网络CDN全球节点(CLOUDFLARENET)(WorldAnyCast)
    @匿名:打开或者分享就可以看见了
     未知操作系统   未知浏览器

    匿名

    2020-05-12 18:47 世界美国加州三藩CloudFlare公司AS13335任播网络CDN全球节点(CLOUDFLARENET)(WorldAnyCast)
    博主,我出现了这个Failed to copy: failed to get Team/Shared Drive info: googleapi: Error 404: Shared drive not found: 0AHcd9mPN37vGUk9PVA, notFound
     未知操作系统   未知浏览器

    jaz

    2020-05-13 17:08 世界美国加州三藩CloudFlare公司AS13335任播网络CDN全球节点(CLOUDFLARENET)(WorldAnyCast)
    @匿名:这个是获取不到团队盘,看看是不是有sa账号没有添加到群组
     未知操作系统   未知浏览器

    23333

    2020-04-21 09:26 世界美国加州三藩CloudFlare公司AS13335任播网络CDN全球节点(CLOUDFLARENET)(WorldAnyCast)
    添加服务账号进群组,出现如下提示   某些用户不属于您单位或其所用帐号无效。根据您单位或群组的配置,只有单位成员才能加入。请与群组所有者或网域管理员联系以获取帮助。
     未知操作系统   未知浏览器

    匿名

    2020-04-06 11:00 世界美国加州三藩CloudFlare公司AS13335任播网络CDN全球节点(CLOUDFLARENET)(WorldAnyCast)
    failed to get Team/Shared Drive info: googleapi: Error 404: Shared drive not found

    怎么回事呢 groups账号已经添加到了那个团队盘里面啊啊啊
     未知操作系统   未知浏览器

    匿名

    2020-03-13 14:41 美国CloudFlare公司CDN节点
    您好,我在创建项目时出现这个问题,请问该怎么办。9YyMVdq4ZFngKfh.png
     未知操作系统   未知浏览器

    jaz

    2020-03-16 14:42 世界美国加州三藩CloudFlare公司AS13335任播网络CDN全球节点(CLOUDFLARENET)(WorldAnyCast)
    @匿名:不知道这个问题
    试试pip3 install -r requirements.txt --upgrade
    不行就升级python,装个3.8看看
     未知操作系统   未知浏览器

    舛小墦

    2020-03-13 08:46 世界美国加州三藩CloudFlare公司AS13335任播网络CDN全球节点(CLOUDFLARENET)(WorldAnyCast)
    failed to get Team/Shared Drive info: googleapi: Error 404: Shared drive not found
    出现这个问题,gclone成功安装,autorclone文件为复制过来的(之前一次做到创建完账号就卡住就重新做了),rclone全新自己添加的盘,已知在rclone挂载团队盘好像有谷歌api报错,但是不知如何解决
     未知操作系统   未知浏览器

    jaz

    2020-03-16 14:42 世界美国加州三藩CloudFlare公司AS13335任播网络CDN全球节点(CLOUDFLARENET)(WorldAnyCast)
    @舛小墦:这个大概是服务账号没有添加到团队盘里面,遇到过一次
     未知操作系统   未知浏览器

    匿名

    2020-03-12 13:52 世界美国加州三藩CloudFlare公司AS13335任播网络CDN全球节点(CLOUDFLARENET)(WorldAnyCast)
    求window版的详细教学,搞了一下午还是不懂,rclone安装这步也看不懂
     未知操作系统   未知浏览器

    juch

    2020-03-12 23:18 世界美国加州三藩CloudFlare公司AS13335任播网络CDN全球节点(CLOUDFLARENET)(WorldAnyCast)
    @匿名:不用想了,gclone只支持deb系
     未知操作系统   未知浏览器

    jaz

    2020-03-16 14:45 世界美国加州三藩CloudFlare公司AS13335任播网络CDN全球节点(CLOUDFLARENET)(WorldAnyCast)
    @juch:有win端的https://github.com/donwa/gclone/releases
     未知操作系统   未知浏览器

    jaz

    2020-03-16 14:46 世界美国加州三藩CloudFlare公司AS13335任播网络CDN全球节点(CLOUDFLARENET)(WorldAnyCast)
    @匿名:https://github.com/donwa/gclone/releases下载win端的gclone基本一样操作
     未知操作系统   未知浏览器

    Juch

    2020-03-11 18:19 世界美国加州三藩CloudFlare公司AS13335任播网络CDN全球节点(CLOUDFLARENET)(WorldAnyCast)
    再次请问这个是怎么搞得,怎么把团队盘和gc连接起来,就不用输入长长的id,绑定一个默认的盘
    > ##sa1已配置为团队盘
     未知操作系统   未知浏览器

    jaz

    2020-03-16 14:40 世界美国加州三藩CloudFlare公司AS13335任播网络CDN全球节点(CLOUDFLARENET)(WorldAnyCast)
    @Juch:rclone配置最后一步,选择挂载为团队盘,文章有说
     未知操作系统   未知浏览器

    Juch

    2020-03-11 17:56 世界美国加州三藩CloudFlare公司AS13335任播网络CDN全球节点(CLOUDFLARENET)(WorldAnyCast)
    请问要怎么往无限空间的邮箱转存内容
     未知操作系统   未知浏览器

    jaz

    2020-03-11 18:07 世界美国加州三藩CloudFlare公司AS13335任播网络CDN全球节点(CLOUDFLARENET)(WorldAnyCast)
    @Juch:先转到团队盘(你是管理员的盘),转到团队盘的文件所有者是管理员,这样就可以直接移动自己盘里面
     未知操作系统   未知浏览器

    Juch

    2020-03-11 18:24 世界美国加州三藩CloudFlare公司AS13335任播网络CDN全球节点(CLOUDFLARENET)(WorldAnyCast)
    @jaz:原来是这样,怪不得我往自己盘直接转的时候一直出错,绑定了自己的盘只能读和看,根本写不进去,原来是这样,但是团队盘里面只能移动不能复制呀
     未知操作系统   未知浏览器

    返回顶部    返回首页    手气不错    捐赠支持         
    版权所有:Jialezi `s blog    站点维护:    +主题:海云彩色