博主目前在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
本文将在国外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:邮箱如何快速提取?ython
脚本从account
里的json
提取,脚本由以下项目提供https://github.com/Sheldonsix/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/releases
基本功能同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://www.idcfq.com/255.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为服务器端复制,不走本地流量
Q & A
Q. 怎么检查是否拷贝完全?发现丢文件了?
A. 拷贝完请做以下检查
rclone --config rclone.conf size src001:源路径
rclone --config rclone.conf size dst001:目标路径
如果发现目标盘比源盘体积还要大,那么对目标盘进行去重;如果发现目标盘比源盘少文件了,那么再拷贝一次;如果还是少,那么就是源盘里面的有重复文件了,直接对其进行去重复。去重命令:
rclone --config rclone.conf dedupe dst001:源路径
rclone --config rclone.conf dedupe src001:目标路径