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

发布于 2020-06-21  269 次阅读


原文地址 blog.jialezi.net

        博主目前在 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)里面创建一个群组,创建好你会获得一个类似域名邮箱的地址 sa@yourdomain.com

利用 API 将 service accounts 加入 Google Groups

python3 add_to_google_group.py -g sa@yourdomain.com

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

将 sa@yourdomain.com 添加到 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

您阅读这篇文章共花了: 0 小时 00 分 03 秒
本文链接://blog.jialezi.net/?post=153
版权声明:若无特殊注明,本文皆为《jaz》原创,转载请保留文章出处。


或许明日太阳西下倦鸟已归时