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

2,152次阅读
没有评论

共计 4081 个字符,预计需要花费 11 分钟才能阅读完成。

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

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

然后通过 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

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

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

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

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

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

【高级】

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

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

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

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

 

选择 允许

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

复制返回的代码,粘贴

到 Xshell 会话窗口:

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

粘贴后回车:

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

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

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

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

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

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

接着 你就会发现你的 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/

创建群组:

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

填写群组信息:

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

 

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

看到你的项目及 SA

AutoRclone+gclone 突破 750G 流量限制转存 GoogleTeamDrive
点开全部 就能看到你 all 的 sa (当然你也可以不用看)

AutoRclone+gclone 突破 750G 流量限制转存 GoogleTeamDrive
只是为了让你理解你的服务账号在哪

AutoRclone+gclone 突破 750G 流量限制转存 GoogleTeamDrive
接下来 你就发现 每一个项目都有 100 个电子邮件。

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

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

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

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

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

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

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

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

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

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

找到群组邮箱:

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

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

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

AutoRclone+gclone 突破 750G 流量限制转存 GoogleTeamDrive添加完成后,基本就完成所有设置了

直接使用

首先将 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

 

 

正文完
 
水东柳
版权声明:本站原创文章,由 水东柳 2020-06-02发表,共计4081字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
评论(没有评论)