东流西上
故在柳溪,水东有柳

AutoRclone+gclone突破750G流量限制转存GoogleTeamDrive

阿里云主机

AutoRclone是一个用Python写的小程序的集合,

  • 学习了folderclone利用service accounts来替代普通Google账号进行拷贝/上传;
  • 通过rclone rc来做到对Rclone任务的监、控;
  • 还可以用Google Groups的形式对成百上千的service accounts进行管理。

从而方便快速地

  • 从本地到 Team Drive,
  • 从公共分享目录到 Team Drive,
  • 再或者从 Team Drive 到 Team Drive。

本文基于Linux centos7系统参照网上的教程实际操作的。

准备工作

1.一个谷歌账号

2.一个Google Team Drive帐户,网上很多。

1、安装相关依赖

检查python3

如果未安装或者版本太低(3.4及以下),先装好。

python3 -V

安装pip3、依赖和rclone

Centos:

sudo yum update
sudo yum install -y python3-pip screen git curl
curl https://rclone.org/install.sh | sudo bash

下载并安装AutoRclone

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

生成SA

一个账户都有 750G 的限制,Au­toR­clone 目的在于当一个账号限额达到之后,自动切换至下一个

一般来说 一个项目 = 100 个 sa=750GB*100=75T,一天 75T 足够了

生成服务项目

首先开启 Drive API (developers.google.com/d

 

然后通过ftp工具或者宝塔将你下载的credentials.json文件上传到AutoRclone目录下。

接下来有三个方法:

1、之前没有创建过项目

直接运行:

python3 gen_sa_accounts.py --quick-setup 1

以上命令含义:

  • 创建1个项目
  • 开启相关的服务
  • 创建100个 service accounts
  • 将100个 service accounts 的授权文件下载到 accounts 文件夹下面

2、已有项目,需要创建新的

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

以上命令含义:

  • 额外创建2个项目(项目N+1到项目N+2)
  • 开启相关的服务
  • 创建200个 service accounts(2个项目,每个项目100个)
  • 将200个 service accounts 的授权文件下载到 accounts 文件夹下面

3、使用已有项目,不创建新的

python3 gen_sa_accounts.py --quick-setup -1

以上命令会覆盖掉已有的 service accounts

我这里是第一种情况,运行 python3 gen_sa_accounts.py --quick-setup 1

若第一次运行会让你开启权限

如下图,浏览器打开返回的链接:

登录拥有 Team Drive 账号的谷歌账户:

【高级】

【转至Quickstart(不安全)】【允许】Quickstart

 

选择 允许

复制返回的代码,粘贴

到 Xshell 会话窗口:

粘贴后回车:

如果回车后,你看到如上图的提示,原因是谷歌账号未开启 Service Usage API

复制打开提供的链接地址,到浏览器打开,注意是登录你刚刚授权的谷歌账户,然后点击启用:

启用成功后,回到 Xshell 会话窗口,点击回车,之后就会显示类似下图内容:

接着 你就会发现你的Au­toR­clone 文件下面的 ac­counts 文件夹下会有很多的 json 文件。

将service accounts加入Google Groups

此为可选操作,但建议操作

算是整个过程里最麻烦的步骤了

这个步骤也分两种情况

  • 你的账户是普通 Google 账户
  • 你的账户是 G Suite 管理员

如果是管理员,这一个步骤还是比较快速的

但是如果你只是免费领取的 Google Team Drive 账户,那就比较麻烦

我们这一步需要将刚刚生成的数以百计的 Service Accounts 添加到 Google Group 中

而且,每次只能加10个,每24小时只能加100个

创建Google Group

打开链接:https://groups.google.com/

创建群组:

填写群组信息:

 

你可以在 Google API(console.developers.google.com

看到你的项目及 SA

点开全部 就能看到你all 的sa (当然你也可以不用看)

只是为了让你理解你的服务账号在哪

接下来 你就发现 每一个项目都有100个电子邮件 。

数百个账户一个个复制实在太慢,我们需要借助一个 Chrome 插件:

https://chrome.google.com/webstore/detail/email-extractor/jdianbbpnakhcmfkcckaboohfgnngfcc?hl=en-US

然后我们就可以通过刚刚安装的插件,批量获取到这些邮箱:

我们可以以 txt 格式下载这些邮箱,注意这里会将你自己的谷歌账户邮箱也提取出来

#检查是不是100个sa口令 2个项目 全部copy出来 删掉后面的几行

分10次添加 一共100个 免费用户每次只能添加10个 24小时只能添加100个

回到 Group 页面,左侧 直接添加成员,将 Service Accounts 邮箱复制粘贴10个,点击 添加

重复以上步骤,将100个邮箱添加进去:

找到群组邮箱:

将这个邮箱添加到你的 Google Team Drive 中:

添加完成后,基本就完成所有设置了

直接使用

首先将 service accounts 加入到目标Team Drive,

没有这步操作会在转存的时候出现错误:找不到团队盘的ID。

cd /root/AutoRclone
#将以下SharedTeamDriveDstID替换为你团队盘ID 
python3 add_to_team_drive.py -d SharedTeamDriveDstID

查看团队盘ID:

打开你的团队盘,查看浏览器上的链接,比如:

https://drive.google.com/drive/u/2/folders/0App-QeDCIy_mUk9PVA

以上链接中,0App-QeDCIy_mUk9PVA 就是ID

那么就应该运行命令:

python3 add_to_team_drive.py -d 0App-QeDCIy_mUk9PVA

回车后,再次回车:

第一次运行

首先进入AutoRclone文件夹

cd AutoRclone

[可选] 开一个screen,这样的好处是即使断开了ssh连接,脚本还能继续运行。

screen -S rclone

退出screen:按住alt,按a,松开a,按d。

screen -ls # 列出所有screen和序号

screen -r  id # id为-ls展示的序号

命令行运行AutoRclone,执行文件转存。举个例子:

python3 rclone_sa_magic.py -s 1N8NcDtwO8_OEXo9Cus2iednMdnZGv9Xy -d 0AOmwzTX-T1wbUk9PVA -dp tmp -b 1 -e 100

1N8NcDtwO8_OEXo9Cus2iednMdnZGv9Xy为我想转存的别人的共享文件夹id(注意不能是文件id)

0AOmwzTX-T1wbUk9PVA为我的共享盘(已经添加谷歌群组)的id

tmp为我的共享盘中即将存放该文件夹的路径,若不存在会自动创建。

原始

python3 rclone_sa_magic.py -s SourceID -d DestinationID -dp DestinationPathName -b 1 -e 600

更改

python rclone_sa_magic.py -s 1jqb6E0RUMb94ZdICGzta1jU0hAJSEmvE -d 0AHZBKsbi19RGUk9PVA -dp IDBD-765 原盘 -b 20 -e 30

#

-s 别人分享的ID

-d 自己TD盘的ID

-dp 要拷贝的文件夹名称

-b sa开始的用户

-e sa结束的用户

比如我今天已经把前十个的限额用满了,那我 -b 11 即可。

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

查看日志

如果报错了,注意查看日志文件。

tail -f log_rclone.txt # 实时
cat log_rclone.txt

如果发现拷贝内容明显少于源 Team Drive 里面的内容,那么你可能碰到 Bug 了,请给上运行参数再加上 –disable_list_r

如果你一开始就碰到了

rclone --config rclone.conf size --disable ListR src001:源路径
rclone --config rclone.conf size --disable ListR dst001:目标路径

如果发现目标盘比源盘体积还要大,那么对目标盘进行去重;如果发现目标盘比源盘少文件了,那么再拷贝一次;如果还是少,那么就

是源盘里面的有重复文件了,直接对其进行去重复。去重命令:

rclone --config rclone.conf dedupe src001:源路径
rclone --config rclone.conf dedupe dst001:目标路径

 

 

参考教程

https://www.uud.me/qiwenzalun/autorclone-gclone.html#%E7%94%9F%E6%88%90ServiceAccounts

https://zhuanlan.zhihu.com/p/124305044

https://kkdfxz.gitbook.io/fx/jiao-cheng-zhong-xin/drive750g#%E6%AD%A5%E9%AA%A4%E5%9B%9B-%E5%BC%80%E5%A7%8B%E8%BF%90%E8%A1%8C

 

 

赞(0) 打赏
转载请注明出处:水东柳博客 » AutoRclone+gclone突破750G流量限制转存GoogleTeamDrive
分享到: 更多 (0)

评论 抢沙发

8 + 1 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏