Folderclone&AutoRclone(GD转存)

前言

经常有一些Google Drive需要下载…但是一个账号只给15GB的大小。有一些资源无法存到自己的盘, 直接下载超过一定流量 就无法下载了。 所以有转存的需求。
经群内同学@Zero 引导 在初期参考此篇文章 的前提下得到此文,用于笔记。

先简单的介绍一下这四件套

 

项目备注
rclone一切的开始
gclone在rclone的基础上增加了对单目录的支持
Folderclone生成AS工具人批量转存(无法创建目录)
AutoRclone生成AS工具人批量转存(可以创建目录)

 

我是先学习了Folderclone后学习了AutoRclone,所以在文章的开头大篇幅讲解了Folderclone
如果你两个都还不会的话,建议直接跳过Folderclone,从AutoRclone段落开始阅读。
根据我的经验只需要gcloneAutoRclone这个组合就可以了。另外两个随缘吧。
凡是讲解rcloneFolderclone可以有选择的略过,

 

如果你没有自己的团队盘,需要先建立自己的团队盘,因为这是必要的。

Google Drive & Team

引用 @P3TERX

创建自己的谷歌团队盘

谷歌团队无限盘申请:
https://gd.zxd.workers.dev/
https://iuj.ur.workers.dev/
https://UCLA.ur.workers.dev
https://gdrive.zppcw.cn/

稳定性自行评估

管理地址:
https://drive.google.com/drive/u/0/shared-drives

安装 Folderclone

[必要]python [可选]git 如果没有就自己下载Folderclone

git clone https://github.com/Spazzlo/Folderclone.git
cd Folderclone
pip install Folderclone

获取Google Drive API 服务

浏览器打开Python Quickstart点击Enable the Drive API
新用户首次请求API的时候,会问一些授权的东西,选择yes就可以了
然后DOWNLOAD CLIENT CONFIGUIRATION
下载到credentials.json 丢到 Folderclone 目录下
在Folderclone目录下执行multimanager interactive会打开Google Drive web的界面,然后授权。
然后点击高级然后转至 Quickstart(不安全)然后允许
浏览器会提示 The authentication flow has completed. You may close this window.
此时cmd/power shell会显示一些信息。 提取其中三个网页信息,复制到浏览器中,然后授权。
授权之后,回到cmd/power shell 按回车键,会提示Multi Manager 命令提示符变成 mm>

创建机器人到团队盘

mm> quick-setup N SHARED_DRIVE_ID

N=项目数量 | 我取数值=1 实际给我的团队盘添加了100个BOT
SHARED_DRIVE_ID=自建团队盘的root数值 | rootId=*** 取*****部分

使用 Folderclone

multiFolderclone -s SOURCE_FOLDER_ID -d DESTINATION_FOLDER_ID

SOURCE_FOLDER_ID = 需要转存的目标文件 ROOTID
DESTINATION_FOLDER_ID = 自己需要存档的目标文件夹 ROOTID

团队盘复制到团队盘

由@huang e 同学 指导 使用 Air Explorer
一开始以为单个账号每天限制750G,转载会比较慢。 这是错误的想法,实际体验很良好。团队转团队效率还挺不错的。

提示 timeout 踩了好久好久的坑

用这个来测试是否已经出去了。

curl -vv http://www.google.com

路由器的话,因为是rule的问题,所以没有这样的困惑。但是clash使用起来会有一些坑需要踩

set http_proxy=http://127.0.0.1:7890
set https_proxy=http://127.0.0.1:7890
set http_proxy=socks5://127.0.0.1:7891
set https_proxy=socks5://127.0.0.1:7891

首先 set 一个变量只能set一项 已经规定http_proxy=http了 就不能 规定http_proxy=socks5

所以通常我只用下面两项

set http_proxy=http://127.0.0.1:7890
set https_proxy=http://127.0.0.1:7890

其次clashR的内核在使用cmd代理的时候会有BUG。
这种说法其实并不准确。 应该是用ssr线路会有问题。因为clash原生不支持ssr。

最后 路由器的http_proxy不是7890 ,强行在cmd规定http_proxy,也会报错。

 


AutoRclone

我反复阅读了Folderclone 的官方readme, 确实没有发现可以创建目录的命令。
所以我这边又学习了AutoRclone,下面提供我的思路。

安装 AutoRclone

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

如果你使用python便携版(嵌入式),会报错,缺少progress-1.5-py2.py3-none-any.whl, 自己去网上下载。(没有报错的话不需要执行)

pip3 instal progress-1.5-py2.py3-none-any.whl

浏览器打开Python Quickstart点击Enable the Drive API
新用户首次请求API的时候,会问一些授权的东西,选择yes就可以了
然后DOWNLOAD CLIENT CONFIGUIRATION
下载到credentials.json 丢到 AutoRclone 目录下

创建机器人

创建100个机器人。

python gen_sa_accounts.py --quick-setup 1 --new-only

管理工具人

下文方法二添加机器人中会使用到,如果用方法一添加机器人则忽略

先选择Google APIs旁边的Quickstart选择全部选择自己生成工具人的那个组
点击凭据 然后管理服务账号 就可以批量删除了。

添加机器人

方法一:把机器人添加到自己的团队盘(觉得方法二烦的话可以直接使用这个 但不推荐)

python3 add_to_team_drive.py -d <团队盘rootid>

方法二:更加进阶添加机器人的方法(用gounp来管理机器人)(可以忽略)

这种方法很复杂,我研究了很久,找到了属于自己的一种方式,如果你没有什么耐心的话,建议使用上面不推荐的原始方法
先简单的说一下逻辑,就是把所有创建好的机器人账号,丢到一个群组里面,然后让这个群组代表我们所有人。
100个机器人+一个我=101个用户的群组。这个群组账号加入到对方的团队盘就可以完成工具人两点互传。
我应该讲清楚逻辑了吧..下面我们就开始我个人经验..

首先在这里先创建一个群组,注意第二行群组电子邮件地址[email protected]
就是我上文提到的群组身份账号,创建完这个群组,然后查看我上文提到的管理工具人,按照那个去操作会得到一个机器人列表
Google 页面没有提供导出的功能,所以这里我研究了好久,得到一个自己的方法。
首先,我们把所有内容通通ctrl+c复制下来,然后打开excel, 粘贴到excel里面,提取第一排的数据
然后复制到notpad中,替换所有换行符,然后替换comcom,
这样做的目的是群组每次最多只可以添加十个机器人,且机器人账号与机器人账号之间,必须用英文的,来分割。
notpad前面会有序号,这样以十个为一组1-10``11-20以此类推逐一添加到这个群组中。
这个添加的入口还蛮难找的..这边我直接给一个直连。选择直接添加成员

https://groups.google.com/forum/#!managemembers/********/add

中间的星星代表[email protected],之前这个注册的XXX部分
一个群组一天(24小时)最多只能添加100个机器人,刚好够我们这次添加的。



我一般不喜欢在教程中配图,这次为了讲清楚这个细节,配了四张图…

使用 AutoRclone

开始转存

python rclone_sa_magic.py -s <转移的rootid> -d <保存的rootid> -dp <在保存的ROOTID下创建一个名字目录> -b 1 -e 100

创建的目录可以是中文 cmd命令下没有中文候选词这个问题,我还没有解决。 返回旧版cmd可以出来候选词,但我觉得这种方法并不优雅
1=第1号工具人 100=第100号工具人 (虽然我的团队盘下只有200个工具人,但是我也可以这样写,可以执行没有问题)

自检错误

如果有报错的话 可以这样来检查

rclone --config rclone.conf size --disable ListR src001:            //检查目标源
rclone --config rclone.conf size --disable ListR dst001:            //检查存储源

申请一个私有 Google Drive API

启用 Google Drive API 创建 OAuth 客户端 ID
首次创建会让你配置同意屏幕,填写应用名称后直接保存即可。
这个API不是必选项,配置rclone的时候,如果不填的话,默认使用rclone自带的api, 高峰期用的人多的话,就会卡。
感谢P3TERX ZONE

快速建立rclone其他分区

rclone的配置目录在这个位置:

%USERPROFILE%\.config\rclone\rclone.conf

大概是这样一个内部构造

[名称]
type = drive
client_id = 私有API账号
client_secret = 私有API密钥
scope = drive
token = 账号授权
team_drive = 指向哪个团队盘的rootid

所以不需要打开人rclone config 重复构造,直接修改配置文件就可以达到更便捷的效果。

gclone 使用方法

聪明的同学应该已经看出来,gclone的配置目录与rclone是共用一个目录的

快速建立gclone其他分区

gclone的配置目录在这个位置:

%USERPROFILE%\.config\rclone\rclone.conf
[名称]
type = drive
client_id = 私有API账号
client_secret = 私有API密钥
scope = drive
root_folder_id = 自己申请到的团队盘的rootid
service_account_file = .\AutoRclone\accounts\任意一个.json
service_account_file_path = .\AutoRclone\
team_drive = 指向哪个团队盘的rootid

直接上手

gclone copy <gclone生成的名称>:{需要转存的rootid} <gclone生成的名称>:{这里换成你要存的ROOTID}/如果要在目录下生成文件夹的话/  --drive-server-side-across-configs -v

案例命令

gclone copy hx:{111111111111111} hx:{22222222222}/唤醒/  --drive-server-side-across-configs -v