本篇教程基于以下平台VPS及环境进行测试通过后发表
Server : macOS Catalina 10.15.4 Parallels Desktop 15
System : ubuntu Server 18.04 LTS minimal & Debian GNU 10 (buster) minimal

首先放出全自动运行示例

以上视频是通过 AutoRclone 生成管理 SA.json 文件并通过 gclone 进行对 GoogleDrive 资源进行 Copy 的运行示例

0.介绍本文中使用的程序及其扮演的角色

先介绍一下需要用到的程序各自扮演的角色

Google Drive远程存储对象 本文中出现 {Source:path} {Dest:path}
{Source:path} 资源来源目录:路径
{Dest:path} 资源目标目录:路径

Rclone 存储对象文件上/下行传输/同步/去重等多功能命令行(CLI)管理工具

gclone Rclone魔改版:支持自动切换SA/突破750G/24h限制

AutoRclone 自动创建Google IAM Project/SA/管理SA

教程目的:全新配置AutoRclone + gclone 利用 ServiceAccounts 突破 750GB/24h 限制

每个ServiceAccounts简称SA等同于一个账号,拥有750GB/24h流量使用权限 每个普通账号可以创建默认最大12个项目,每个项目默认可创建100个SA 剩下的你们计算器算把

教程步骤流程:

安装环境安装AutoRclone生成并配置所需SA安装gclone配置gclone
向GoogleDrive复制资源

具体步骤如下:

1.安装依赖环境&软件 + 下载安装 AutoRclone

首先升级源与安装必备的环境


apt update -y && apt upgrade -y
apt install wget curl screen git sudo python3-distutils -y
sudo -i
#若非 root 用户下面步骤请统一用 sudo 执行

安装 python3 & pip3


apt install python3 python3-pip -y
#如果找不到pip请按以下命令操作
#由于部分朋友在仓库内找不到 pip/pip3 故提供以下安装方式<
curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python3 get-pip.py

下载并安装 AutoRclone


cd ~
git clone https://github.com/xyou365/AutoRclone && cd AutoRclone && sudo pip3 install -r requirements.txt

2.配置 AutoRclone

首先G 开启DRIVE API

将刚才下载的 credentials.json 文件上传至 ~/AutoRclone 目录下
如果你是 windows 系统,你可以利用各类 SFTP 工具上传文件
如果你使用的是 macOS/Linux 可以使用以下命令上传文件


scp 'PATH'/credentials.json 'SSH_USER_NAME'@'REMOTE_IP':'REMOTE_PATH'
'PATH'          本地 credentials.json 文件存放的路径
'SSH_USER_NAME' SSH 用户名
'REMOTE_IP'     VPS的IP
'REMOTE_PATH'   VPS 中 AutoRclone 目录
                以上输入时不要''引号
#如果蛋疼,你在win也可以启用ssh服务后在cmd使用scp

输入命令可以看到以下文件即成功


ls ~/AutoRclone | grep 'credentials.json'

通过AutoRclone 自动创建+启动项目 & 创建+下载SA文件
官方给出了三种情况举例,其实都是一样的,我们已全新新创建为例


python3 gen_sa_accounts.py --quick-setup 10

命令说明
python3 gen_sa_accounts.py --quick-setup $NUM
'--quick-setup'      作者提供的快速创建方式
                     自动完成 '创建+启动项目' & '创建+下载SA'
'$NUM'               想在创建几个项目就输入几,每个项目最大默认允许 100 个'SA'
                     一般账号许可范围是 '1~12'
                     教程使用是新测试账号所以创建'10'个
#其实不是这个意义,简单教程你们就这么理解吧

输入命令后会提示请给这个应用授权

输入授权码后 enter 继续
如果看到以下提示请根据链接打开api

按上图启用api后,回到SSH窗口 Enter 继续会自动完成所有创建步骤
Enter 输入后会见到以下提示在屏幕显示


creat projects: $NUM                       #上面命令'--quick-start'输入了几就显示几
Creating $NUM projects                     #同上
Enabling services                          #自动对项目启用对应服务
Creating accounts in 'project name 1'      #在项目1中创建SA 100个
Creating accounts in 'project name 2'      #在项目2中创建SA 100个
Creating accounts in 'project name 3'      #在项目3中创建SA 100个
Creating accounts in 'project name 4'      #在项目4中创建SA 100个
Creating accounts in 'project name 5'      #在项目5中创建SA 100个
.
.
.

等带所有项目与SA自动创建并下载完成后在 accounts 目录就能看到很多sa文件


ls ~/AutoRclone/accounts

批量提取 SA email 文件:
提取 accounts 目录内 sa json 中的 email 信息备用
教程测试账号为 google 普通账号,非 GSuite Admin 需要手动添加 SA 进群组
所以推荐选用 10 行分组模式命令如下,命令详情请阅读批量提取相关文章
如果你是GSuite Admin 请阅读 GSuite Admin 专用 CSV批量导入


cat ~/AutoRclone/accounts/*.json | grep "client_email" | awk '{print $2}'| tr -d ',"' | sed 'N;N;N;N;N;N;N;N;N;/^$/d;G' > ~/email

执行完上步骤后可以把 '~/email' 文件下载到本地自己保存,最后导入GoogleGroup

输入命令获取一个 sa json文件名 自己先记录一下 后面配置需要用到


ls ~/AutoRclone/accounts | awk 'NR==1'

3.手动解决 AutoRclone 配置时发生的错误

正常情况 '--quick-setup' 标签会自动完成 创建+启动项目 并 创建+下载SA全过程
如果碰到以上图示错误怎么处理
经过多次'胡乱不完全测试',基本上与以下几点原因有关
(1)因为与googleapis的通信原因造成的错误
(2)Project中有曾经删除但未到期1个月未完全删除的项目存在会被AutoRclone读取
由于个人情况不同,可能因为网络,也可能是其他原因无法得知大家的错误具体在哪一步
下面给出统一解决方案
为了防止接下来手动创建步骤的SA与本地不完整的文件重复
删除本地所有SA文件


rm -i ~/AutoRclone/accounts/*

接下来开始手动步骤,确认项目是否已创建


python3 gen_sa_accounts.py --list-projects

BashCopy

或手动前往 cloud-resource-manager 查看项目是否成功创建

情况分两种
(1)未成功创建,需手动创建,回到 SSH 窗口输入以下命令


python3 gen_sa_accounts.py --create-projects $NUM

$NUM 解释请翻阅上文

BashCopy

执行作者提供的重置所有项目命令


python3 gen_sa_accounts.py --quick-setup -1

BashCopy

如果还是看到以下图示错误,请手动执行(2)步骤

(2)项目成功创建,但项目未正常启用服务 + 创建并下载 SA 文件
输入以下命令,并记录所有的 saf 开头的项目名


python3 gen_sa_accounts.py --list-projects | grep 'saf'

BashCopy

对项目开启对应服务


python3 gen_sa_accounts.py --enable-services saf-xxxxxxxx
#你有几个 saf 项目就对应输入几次 saf-xxxxx 替换为上一步你记录的项目名

BashCopy

重置项目中所有的 SA


python3 gen_sa_accounts.py --quick-setup -1
#此时再遇到上文(1)中错误或任何其他错误可以不予理会

BashCopy

下载 SA 文件至 accounts 目录


python3 gen_sa_accounts.py --path accounts --download-keys saf-xxxxxx
#你有几个 saf 项目就对应输入几次 saf-xxxxx 替换为上一步你记录的项目名

BashCopy

全部 SA 下载完成后 回到 2.配置AutoRclone – 批量提取 SA email 文件 这一步

4.创建 GoogleGroups 并添加 SA email

前往 GoogleGroup 创建自己的群组

创建完成后开始将上文下载的 email 文件内 SA 的 email 添加进群组
每次最多添加10个SA,一天最多添加 100个SA,例如我这里创建了1000个SA需要添加10天

5.下载+安装+配置 gclone

下载安装 gclone


cd ~
bash <(wget -qO- https://git.io/gclone.sh)

BashCopy

开始配置 gclone
首先根据博客之前教程 Rclone 如何关联 GoogleDrive进行设置
原文中设置命令 'rclone config' 修改为 'gclone config'
在配置中需要多填以下2步,其他均一样,配置完需不需要挂载随意(非必须)


'service_account_file'>/root/AutoRclone/accounts/xxxxx.json
#第2步最后自行记录的 sa json 文件名
'service_account_file_path'>/root/AutoRclone/accounts/
#必须写末尾的'/'符号

BashCopy

最后前往 GoogleGroup 创建自己的群组并将上文下载的 email 文件内 SA 的 email 添加进群组

6.简单使用教程

首先说明下文中提到的名词:


'source' = 资源'来源''团队盘'或'目录''ID'
'dest' = 资源操作目标'团队盘'或'目录''ID'
'path' = 目录路径

BashCopy

将第5步创建的 'Group email' 作为成员添加到 source 与 dest 团队盘中
如果 source 为他人的团队盘或共享文件夹请留下你的 'Group email' 向对方申请权限
gclone 的使用方式大体与 rclone 相同,请先阅读RCLONE使用方法
已经对一些简单的命令进行了中文注释以后还会继续更新

gclone的命令格式为


gclone "options" remote:{source}/path/ remote:{dest}/path/ "Flags"

具体 'options' | 'remote' | 'Flags' 含义阅读上面提到的 'RCLONE使用方法'
内有详细介绍 命令中的单双引号都是不需要的

BashCopy

可用的复制命令格式如下


gclone copy remote:{source}/path/ remote:{dest}/path/ --drive-server-side-across-configs -vvP --ignore-existing --tpslimit 3
#将 'source' | 'dest' | 'path' 替换为你要复制的ID与目录即可

BashCopy如果你完成了上面所有的步骤(除去第三步手动排错)那么恭喜你配置成功
从现在起你已经可以开始你的大批量文件搬运生涯了,祝早日破1PB
由于文章细节毕竟多,比较冗长,所以将感谢的话写在最下面

7.Linux其他发行版相关命令

预计未来会更新详细命令


本篇教程通用 'Debian/ubuntu' 系统
若你的 'Debian/ubuntu' 版本过低请将 'apt' 命令替换为 'apt-get'
==========================================================
若你使用的是 'CentOS/Fedora' 系统
请将 'apt' 命令替换为 'Yum' or 'DNF' 并替换对应软件包名称
==========================================================
若你使用的是其他系统请替换对应 '包管理命令' 及 '软件包名称'