2020年8月

65885051_p0.jpg

羊毛党最爱的办公存储服务莫过于大厂微软和谷歌的一些优质服务了,其中微软的免费offcie365和onedrive 5tb-25tb超大空间网盘,以及谷歌gsuite服务配套下的无限空间googledrive则是入门必备。

其中有各种渠道来源的产品,包含的服务类型和稳定程度也各不相同,这里简单归纳下常见的一些实用产品类别,供大家挑选:

1.微软office365账号

最常见的是各种子号,也就是单独的办公/学校账号,这类都是在全局域名管理下的,普通子账号,虽然是普通,所享受的服务也是非常不错的

a.各种a1,a1p子号

这些是最常见也最容易免费申请拿到的子账号,区别一般是,a1只拥有在线365办公,而a1p可以支持桌面office365本地版本,附带的OneDrive空间,系统默认是1tb,如果是羊毛党派送的,一般会将系统空间修改为5tb,有心的全局大佬,申请开通25tb的话,你使用onedrive超过90%空间,也就是4.5tb以上,可以联系全局管理员提升到25tb

b.绝版msdn e3 子号/低门槛e5 子号

这些子账号,属于商业性质全局下的子账号,msdn e3子账号有别于以前免费申请的e3 developer,是来源于msdn订阅下的注册链接获得的免费office服务,去年已经被取消此福利,已注册的不受影响,理论上永久使用。而免费申请的e3 developer之前只有1年有效期,后来申请的则改成每3个月视开发活动程度决定是否自动续期,也就是现在的e5 全局前身。这些全局都是25最大用户数,每个子号也是拥有office365和OneDrive 5tb空间,可升级到25tb。

c.正规商业订阅的e3 e5账号

这只是顺带一提,正规子号便宜的也需要79元/月/席位的价格,羊毛党可以略过,仅作普及用,如果只是轻度使用,4人拼车家庭版,也是不错的选择,1人1tb空间+office家庭版,还算不错,人均50/年左右

另外你也可以通过获得正规有效的教育邮箱,用学生身份申请正规教育版office账号,这个自行尝试。

谈完子号就说说全局账号了,全局的来源很杂,水很深,各位量力而行,注意风险

d.a1,a1p全局账号

  • 市面上兜售的这些全局,可以说99%都是虚假资料和各种违规方式申请获得的。简单来说,有以下几种方式获得:
  • 扫已经获得a1,a1p授权的域名,抢注申请找回a1,a1p全局账号和相关服务获得
  • 挂靠虚假教育域名下的二级域名,虚假资料骗得,风控原因,此种账号由于不规范操作,容易被冻结,而且一般只批a1全局,由于羊毛党的恶劣行为,原本无限子账号的a1,a1p全局,逐渐缩水为100w额度,1万额度和5000额度,甚至最近的降低为250个
  • 以前审核宽松的时候,个人做虚假信息,虚假学校官网,申请获得a1p之类的全局。此种经历过多次翻车和二次审核,存活下来的不多,由于孤芳自赏,售价一般也在2000-3000左右,虽然本质和新生代的400-800的翻车过的a1p全局没啥区别,外观也不容易识别区别

基本上常见的获取方式就是这些

对比以上各种不太正规的全局,个人比较推荐的是msdn e3绝版全局(市场价格一般700-900元),这个虽然只有25席位,但是算官方比较认可的正规获得的免费office365,而且是商业授权,可以办公商用的,目前无免费申请方式,可以二手购得

其次是免费申请的e5 开发者试用全局,这个直接申请即可:

免费申请e5开发者试用
不足之处是如果你3个月没有效开发活动,将不能续期,但是会留给你1个月的时间转存备份文件数据,算是临时短期用也很放心,不会瞬间爆炸,毫无防备

微软这块常用羊毛就是这样,下面说说谷歌的无限盘:

2.谷歌gsuite无限空间子号/共享盘空间

谷歌的无限空间网盘,主要也是两类:无限个人盘和无限团队共享盘,

1.谷歌无限盘子号

个人盘无限主要是两种:

  1. 商业gsuite订阅账号;
  2. 教育机构订阅免费子号
    商业订阅,普通的就是12刀/月的,一个人订阅实际也是无限个人空间,附送创建无限团队共享盘资格。
    其次比较划算的是新人通过代理订阅1年试用的商业全局,含11个席位,这个价格一般800多/年,也是不错的,到期可以选择备份和取消服务
    而教育机构主要就是正规学校和虚假学校申请获得了。主要分为三类吧:
  • 美国社区大学,这个门槛最低,人人都可以做虚假学生身份去申请报名,审核通过会给你一个google账号,就是无限空间了,一般没有无限团队盘创建资格,管理员锁定了。不足之处是3,5个月不去报名交钱,勤快 的管理员就帮你删号了,一般可以稳定用1-3年,毕业时间一到,会很大几率大清扫
  • 美国公立大学,常青藤这种联盟名校为例,一般是特殊渠道获得,可能是盗号或者不正当注册,价格也稍贵一些
  • 美国社区大学和公立大学的校友账号,校友账号是专门给已经毕业学生提供的账号,所以理论上是永久使用的,价格一般也会贵一点,1,2百左右。但是也会有风险,滥用举报,和前不久的谷歌回访电话审查身份,也是你翻车的原因
    另有非美国的,如台湾,新加坡,甚至欧洲一些国家,也有类似的大学学生账号,类别差不多,个别的支持创建无限团队盘,价格会更贵一点,一般数十元即可拿到,当然你勤快点也是可以尝试自己注册看看
    而只需要免费团队共享盘的话,除以上方式,还有一种是公益组织分发的团队盘,将你拉入管理员,你就能获得无限空间团队盘了

2.谷歌无限盘全局账号

最后谈谈谷歌的无限盘全局账号,主要就是上面说的两类了,一类是虚假的教育全局,一类是虚假的公益组织全局

  • 1.教育全局

这个以前申请审核轻松,随便弄个官网,做个假ps的证件就能过,不过后来风控审核多次,残留下来的不多,也是比较贵的,2000-3500左右市场价

  • 2.公益组织全局

这个全局本来个人都可以申请,当时价格就很便宜了,也就不到300元,后来审核也严了些,需要一些公司账号信息和相关的公益组织证明,因而价格也上涨,目前600-700左右,由于个人盘只有30gb,市场热度不高,谷歌风控也略低,较为稳定
以上是各种常用羊毛简介,若有错误和不足,欢迎指正。希望各位能找到自己需要的资源,尽量别滥用,同时做好多种来路的盘备份,以防连环翻车

  • 3.一些常见子号免费申请服务地址

这里无任何利益关系,给大家提供一些常见的热心大佬分享的免费子账号自助注册信息:

sky.zjuczs.workers.deva1p.j8mao.com/xyxywan.gitee.io/web/
2020.10.10更新:
汇集几个office365自主申请订阅的网站,有需要的可以自行申请,部分听说可以过Azure,OneDrive 5T一般都有
https://a1_sc.a1od.workers.dev/
https://a1_free365.a1od.workers.dev/
https://mail365.xyz/
https://azzzzzz.lx.workers.dev/
https://a1.lx.workers.dev/
http://office.zx.al/
https://od.wulel.cn/
http://my.ehsrr.com/
https://zcnp.azurewebsites.net/
https://od.kbbldh.workers.dev/
http://zcmail.azurewebsites.net/
https://www.1tb.fun/
https://od.malahu.tk/
https://malahu.n5.myws.ca/
https://od.wulel.cn/

还有价格较为低廉的,付费购买的子号或者全局购买导航站:
https://mjjloc.com

6.Fclone的安装和配置(Rclone的又一个fwwkr mod)相关TG bot的配置

title.png
上一节:[post cid="724" /]
项目地址:
https://github.com/mawaya/rclone

发布地址 https://github.com/mawaya/rclone/releases 安装方法 下载对应版本的zip文件 在本地解压获得fclone文件 上传至/usr/bin目录里 chmod +x /usr/bin/fclone来赋予权限(或者直接宝塔面板赋予fclone权限) 使用方法 Gclone改成Fclone即可 超级转存方法 A:低配VPS推荐

--drive-server-side-across-configs --stats=1s --stats-one-line -vP --checkers=128 --transfers=128 --drive-pacer-min-sleep=1ms --check-first

示例 fclone copy remote:{1} remote:{2} flag
参数说明

--drive-server-side-across-configs #服务端传递 
--stats=1s --stats-one-line -vP #日常参数 
--checkers=数字 #越大越快 
--transfers=数字 #越大越快 
--drive-pacer-min-sleep=数字ms #越小越快 
--drive-pacer-burst=数字 #越大越快 
--check-first #fmod必须参数

TG bot 脚本:
https://github.com/cgkings/fclone_shell_bot
安装教程:
https://www.hostloc.com/thread-718078-1-1.html

个人时间和精力问题,以及对大量SA多线程疯狂滥用理念的稍稍抵触,所以不是太想详细折腾太过疯狂的工具
相信你通过前面的学习,应该是可以解决Fclone的安装配置的
2020.10.07 更新: 谷歌对滥用的限制如预期而至,这些当成资料看看就好,已经没有什么实际使用意义了,当然你依然可以使用大量SA创建文件,对拷突破2tb/24h的单创建者限额,作为自己的团队盘对拷备份,还是可以一用的
关于无限谷歌云盘的选购分析和此节其他内容,欢迎直接查看视频地址P12最后一节观看:

或者看看这篇博文:
[post cid="734" /]
感谢大家的阅读,希望你能有所得,那么下次再见了。

上一节:[post cid="724" /]

5.GD-Utils百宝箱的安装和配置

title.jpg

上一节:[post cid="723" /]

准备工作:

对rclone,autoRclone,gclone有一定的了解;
一颗蠢蠢欲动的心;
对lnmp建站环境配置比较熟悉会降低难度;
对tg机器人的配置有基础的话会降低学习难度。

什么样的人需要gd-utils?

  • a.更快速高效地转存谷歌公共分享文件夹和团队盘的资源,拼时间赶在10TB/天公开下载额度用完前功成身退
  • b.需要便捷的tg移动设备随时拷贝转存体验,移动的资源库,行走的绅士。
  • c.大量的资源拷贝转移分享,远超750GB/24h的资源消耗量,希望几个小时就拷贝几百TB谷歌资源的疯狂松鼠党

AutoRclone是用python对rclone命令的一层封装(依赖rclone),gclone是基于rclone的魔改(核心就是rclone),而百宝箱则是直接调用的官方API,不依赖于rclone

百宝箱为什么更快?

相比autoRclone对sa的操作是循规蹈矩一板一眼的按顺序拷贝完就切换sa
gclone是在进程中自动切换sa,每次750G满额后无需再次请求api读取目录文件,大量文件拷贝速度会有提升
而百宝箱则是随机调用更多sa,每个sa同时直接读取google drive api的资源文件id记录
记录保存在本地数据库,统计完成后,所有操作都是基于本地数据库的操作,而不需要多次读取调用drive api
续传任务也会更加稳定准确
如果使用20线程,随机调用20个sa,每个sa每秒只调用一次请求,每秒都可以实现20次请求,而前些工具,都是单独一个sa的反复请求调用,请求频率过快就很容易触发单sa的api接口限制。
作为真正的多sa并发分派任务+本地数据库记录文件数据结构信息和拷贝进度信息,百宝箱基本上可以超脱谷歌api的限制,本地vps分配的线程数越多,效率越高,越不容易触发单sa的api请求限制。
当然,这也意味着大量文件结构读取的时候,你的vps内存和cpu得注意点了,虽然1gb内存上限设置,作者尝试是可以成功转存200w+文件的,但是为了以防万一,建议使用更多内存的vps或者本地pc并且使用如下参数设定node占用内存上限为1GB

node --max-old-space-size=1024 count folder-id -S

甚至你设置为4086,4GB更好
-----以上都是我瞎扯的。
目前版本此类高速多sa请求热门资源,均会遇到频繁的403 user rate limit限制,忙猜是可能大量的sa同时请求同一份文件,谷歌远程硬盘或者数据库并发瓶颈,高频率拒绝大部分的请求,导致会出现正常情况下满750GB额度才拒绝连接的403 错误
建议关注作者更新日志
目前官方做法是增大连续403次数判定再加入剔除队列,治标不治本吧
2020.10.07更新:现在每个创建者名下的文件总限额2tb/24h,以下解决办法已经成为历史,围观下就好。

[collapse status="false" title="解决办法有四"]

  • a.怂一点的,个人觉得只能避其锋芒,要么早点拷完要么晚点去拷
  • b.百宝箱作者说的两种选择:要么定时pm2 reload server要么改成false无视403错误(失去了自动切换sa的功能)
    8.6日更新方法为添加如下参数于config.js文件里:
    const RETRY_LIMIT = 7 // 如果某次请求失败,允许其重试的最大次数
    module.exports = 内增加参数导出:EXCEED_LIMIT
  • c.买gsuite管理全局,10万个sa账号正面刚,一轮过去拷贝完毕,只要sa足够多,cd结束,又可以再战了
  • d.某些工具或许大佬部署更人性化的更新sa使用逻辑,被频繁403拒绝的sa先缓一缓,过些时候又调用看看情况
    [/collapse]

5.a. node环境和依赖安装

作者建议安装v12版本
Node.js v12.x

# As root //以root用户执行下面的指令
curl -sL https://rpm.nodesource.com/setup_12.x | bash -

来自 https://github.com/nodesource/distributions/blob/master/README.md#rpminstall
根据提示

sudo yum install -y nodejs

安装,另外提示可能需要 install gcc-c++ make,这些我们之前安装python3环境包的时候已经安装过了,就略过
命令行执行 git clone https://github.com/iwestlin/gd-utils && cd gd-utils 克隆并切换到本项目文件夹下
执行 npm install --unsafe-perm=true --allow-root 安装依赖,部分依赖可能需要代理环境才能下载,所以需要上一步的配置

来自 https://github.com/iwestlin/gd-utils

如果报错信息里有 better-sqlite3,先执行 npm config set unsafe-perm=true 然后 rm -rf node_module 删掉依赖目录,最后再执行下 npm i安装试试。

5.b. Service Account 配置

获取到 SA 的 json 文件并将其加入团队盘成员后,请将文件拷贝到gd-utils的 sa 目录下。

确认自己当前位于gd-utils安装目录下,直接复制过来:

cp -r ~/AutoRclone/accounts/*  ./sa

如果你没有用sa,那么就需要 rclone config show 显示rclone配置文件,至少需要一个标准配置好的谷歌盘,包括以下三个内容:

client_id = 288003166466-fm0kn6q8ot3q3gv8lo6835hrblnt61gg.apps.googleusercontent.com
client_secret = Sj_Iwnll-PNlIdFbDDg4Js0r
token = {"access_token":"ya29.a0AfH6SMAkSeU5ZQC-RijWYapcLSkbIFqKpsP_34JL8iGQ74cisqOZFiC58KCyVYRJHZ_pp00Q3wlZe_ZnLNSV8W--BxsBrF1nW7C5s1uV0wc3O6tF8za1DxTYvmoApbwSUJRSrW9On-e2bt4rtCCf9STGvOiOnSOVLZk","token_type":"Bearer","refresh_token":"1//0etVjw5XIFKV8CgYIARAAGA4SNwF-L9IriOKssmP92NSZcizvxt_gHMyIufyFJ7bUEOpNZToc5JBYLGEd_NjkZy_Vgyeu9VuTOXA","expiry":"2020-06-30T19:50:41.7096896+08:00"}

client_id,client_secret,refresh_token三者填入gd-utils下面 的config.js文件里完成配置,有了sa的话,这三者可以不填。同时还需要填写一个默认的目标盘ID,作为默认存储盘符
test:0AK-jeaa5dIZeUk9PVA
参数配置好以后,在命令行执行 node check.js,如果命令返回了你的个人谷歌硬盘根目录的数据,说明配置成功,可以开始使用本工具了。纯sa操作不需要执行此测试
而且记得执行命令的时候,记得命令最后带上 -S 参数告诉程序使用SA授权进行操作。
参考文章:
https://javascript.ctolib.com/iwestlin-gd-utils.html

一般就是用 ./count fileID,./copy fileID两个工具来操作,-h查看相应的帮助

接下来我们需要获取telegraph 机器人的token

5.c. telegraph bot机器人配置

https://core.telegram.org/bots#6-botfather
和bot管理员聊天
https://web.telegram.org/#/im?p=@BotFather
使用/ newbot命令创建一个新的bot。BotFather会要求您提供名称和用户名,然后为您的新机器人生成授权令牌。

机器人的名称显示在联系方式和其他地方。
该用户名是一个简短的名字,提到和t.me链接使用。用户名长度为5-32个字符,并且不区分大小写,但只能包含拉丁字符,数字和下划线。您的机器人的用户名必须以“机器人”结尾,例如“ tetris_bot”或“ TetrisBot”。
该令牌是沿着线串110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw所需授权BOT和发送请求到机器人API。确保令牌安全并安全存储,任何人都可以使用它来控制您的机器人。
Done! Congratulations on your new bot. You will find it at t.me/moe_maid_loli_bot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands. By the way, when you've finished creating your cool bot, ping our Bot Support if you want a better username for it. Just make sure the bot is fully operational before you do this.
Use this token to access the HTTP API:
1271588160:AAEi_sXwTNAIAKeiHQpGOQ5jU96A4k-jDNA
Keep your token secure and store it safely, it can be used by anyone to control your bot.
For a description of the Bot API, see this page: https://core.telegram.org/bots/api

来自 https://web.telegram.org/#/im?p=@BotFather

将bot 的api填入 config.js里tg_token栏
然后tg__whitelist填写你的tg用户名,即https://t.me/plumn这里的,不是你显示的昵称,而是@你的那个用户名,这样就仅允许你访问调遣这个bot
如果需要更多用户共享,以逗号隔开,添加第二个用户到新的单引号里
配置完毕后
直接执行 npm i pm2 -g
开启守护程序
安装好pm2之后,执行 pm2 start server.js --node-args="--max-old-space-size=1024",代码运行后会在服务器上监听23333端口。
检查防火墙状态:
firewall-cmd --state
没安装的就 yum install firewalld
安装了没运行的建议 更新下 yum update firewalld
启动:systemctl start firewalld

firewall-cmd --list-all
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --permanent --add-port=23333/tcp
firewall-cmd --reload
firewall-cmd --list-all
systemctl enable firewalld

如果你启动程序后想看运行日志,执行 pm2 logs
查看 pm2 守护的进程列表,执行 pm2 l
停止运行中的进程,执行 pm2 stop 对应的进程名称name
pm2 start 对应name启动进程

5.d.nginx的安装和网址的配置

centos7自带源没有nginx,我们添加下nginx官方源

touch /etc/yum.repos.d/nginx.repo

vi /etc/yum.repos.d/nginx.repo加入以下内容

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
yum list |grep nginx

查询下配置源是否成功
然后安装 nginx执行:

yum -y install nginx

nginx启动并加入自启动:

systemctl start nginx
systemctl enable nginx
cat /etc/nginx/nginx.conf

里面是否包括下面这行,一般是有的,如果没有,则加上

include /etc/nginx/conf.d/*.conf;

然后在 /etc/nginx/conf.d/目录下,创建对应域名网站的配置文件,根据默认文件修改获得。

touch /etc/nginx/conf.d/omo.moe.conf

vi一下,创建如下反代配置:

server {
  listen 443 ssl;
  #ssl on;
  server_name loli.omo.moe;
  root /home/wwwroot/omo.moe;
  access_log /var/log/nginx/omo.moe.access.log main;
  ssl_certificate "/usr/local/cert/omo_moe.crt";#证书路径自己改
  ssl_certificate_key "/usr/local/cert/omo_moe.key";#证书路径自己改
  ssl_session_timeout 10m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
  ssl_prefer_server_ciphers on;

  location / {
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://127.0.0.1:23333/;
  }
}

证书路径自己可以定义,直接用 mkdir -p /usr/local/cert/ 即可
证书申请,门路五花八门,自签证书也可以,Let's Encrypt 三个月免费证书,自己搞个自动crontab三个月续签一次也行,namecheap经常有免费1年证书活动,另外我的博客也有关于证书申请方法,这里就不多做演示,实在觉得证书烦的,可以考虑作者默认提供的cloudflare cdn方式,本地不使用ssl,仅用80端口,cloudflare那边代理proxy 你的这条域名解析,ssl设置为灵活,这样就可以保证tg bot能以https连接到cf,然后cf到你vps只用http即可,但是我觉得对小白来说,这样可能额外增加cloudflare的注册和熟悉学习成本,cdn的线路原理的理解困难,所以真的不想搞ssl的,建议去用免证书和nginx脚本是最好的,总之各位根据自己当前的状态,选择适合自己的方式,以后有空再一步步熟练,先用上了再说吧
好了,这里退出screen,我们直连使用 rz上传证书到/usr/local/cert/
因为我在screen使用lrzsz发生了无法解决的bug:
特别注意:进入screen session后,同时按住(CTRL和A键)然后输入 :zmodem pass 然后再回车即可使用 rz/sz
如果你没注意直接在screen里面输入 rz/sz卡死,请先 ctrl+a+d退出当前窗口,退出访问:screen -D然后 screen -X -S seesionID/screenname quit
即便如此,我好像还是会发生传到100%未完成的bug,懒得折腾了,建议找不到问题的话,还是直连使用lrzsz,别在screen里使用
证书上传完毕,记得
去域名服务商修改dns解析为对应vps的ip,一个A记录,到上面你的servername 二级域名,我这里是loli二级域名,到你的vps ip
记得防火墙放行http,https服务/80和443端口
nginx -t 检查下配置文件语法是否通过,nginx -s reload重启nginx服务
检查网站是否部署成功,可以命令行执行(请将YOUR_WEBSITE_URL替换成你的网址)

curl 'YOUR_WEBSITE_URL/api/gdurl/count?fid=124pjM5LggSuwI1n40bcD5tQ13wS0M6wg'

fid任意文件名都行
这里对应的是:

curl 'https://loli.omo.moe/api/gdurl/count?fid=124pjM5LggSuwI1n40bcD5tQ13wS0M6wg'
curl 'https://loli.omo.moe/api/gdurl/count?fid=1brdm59br_xdO4mytRPWyKutrCdmrl6Rd'

如果你用的http 80端口搭载cf的ssl证书,那么此处网址不需要用https,用http协议即可。
如果返回了gd-utils 成功启动的消息,说明部署成功了。
如果502 bad way,尝试关闭selinux:setenforce 0 nginx -s reload 后可用,则可以 sed -i '/^SELINUX=/s/enforcing/disabled/' /etc/selinux/config永久关闭
最后,在命令行执行(请将YOUR_WEBSITE和YOUR_BOT_TOKEN分别替换成你自己的网址和bot token)

curl -F "url=YOUR_WEBSITE/api/gdurl/tgbot" 'https://api.telegram.org/botYOUR_BOT_TOKEN/setWebhook'
curl -F "url=loli.omo.moe/api/gdurl/tgbot" 'https://api.telegram.org/bot1271588160:AAEi_sXwTNAIAKeiHQpGOQ5jU96A4k-jDNA/setWebhook'

这样,就将你的服务器连接上你的 telegram bot 了,试着给bot发送个 /help,如果它回复给你使用说明,那就配置成功了。
如果要取消bot的webhook,输入:

curl  https://api.telegram.org/bot1271588160:AAEi_sXwTNAIAKeiHQpGOQ5jU96A4k-jDNA/deleteWebhook

即可。
随着把玩的不断深入,你可能会需要bookmark书签功能,指令如下:

/bm set bookmarkname folderID/DriveID

示例:

/bm set test盘 0AK-jeaadlZeUk9PVA

这样下次使用/copy 目标盘id就可以写成这个书签名字了,适合手握N个团队盘,随心所欲快速将不同类型的资源转存到不同的仓库里,分类管理更方便
确认你当前server配置满意后,pm2 l列出正常运行,那么就可以保存并加入pm2开机自启动守护了:
pm2 save保存当前server配置
pm2 startup加入自启动
这样重启vps后,一切都会继续运转,当然,中断的任务还是需要你手动输入 /task续命的
如果拷贝的时候意外提示没有可用的SA,可以尝试使用 pm2 reload server重启对应server名,当然,你确实用完了每24小时的额度,就考虑增加sa或者等作者更新吧,对了更新方式:
进入gd-utils目录下 git pull即可然后 pm2 reload server

5.e.使用IBM免费容器搭建gd百宝箱

这个脚本可以让你方便的通过免费的IBM容器安装自动运行gd百宝箱,挺低成本的一个解决方案,感兴趣的可以看看:https://github.com/artxia/IBM-gd-utils

总算是把gd-utils搞完了。东西都不难安装使用,就是大佬们的文档写的太晦涩残缺,简直像金庸小说里的残本秘籍,差点修炼的走火入魔,实在不想再做什么更新完善了,能帮大家解决80%问题,这个系列的教程目的也算是达到了
下一节:[post cid="725" /]
上一节:[post cid="723" /]

3.Gclone的安装和配置

title.jpg
上一节:[post cid="722" /]
可能上一章,对于AutoRclone的环境配置,SA账号涉及的google开发者控制台,google群组,autoRclone几个python脚本一大堆指令和参数对象的恰当选择,让你头大,没关系,其实autoRclone主要用处只是批量生成sa账号,而批量上传到群组,autoRclone的指令操作,不熟悉,其实不碍事,甚至会不会批量生成sa账号,也不要紧,你只需要熟悉google开发者控制台这边如何新建项目,添加sa账号,创建群组,全部手动来添加,弄个10来个sa到群组,是完全可以做到的,也不用多花多少时间,10个sa,每天7.5TB上限,足够大部分人玩了,这样你就可以完全跳过autoRclone和对你来说不太友好的python3环境安装,这些统统跳过都行

将得到的10个sa配置信息json文件,和一个待命的群组添加到你的目标团队盘,就可以直接安装Gclone,使用gclone享受自动切换sa拷贝文件了,完全可以以后有空再巩固autoRclone的工具人操作

gclone是传承了rclone所有的功能,支持OneDrive拷贝Googledrive,操作指令也比较清爽,你甚至可以将gclone copy等指令做个改名,一律改成rclone copy等,完全当升级版的rclone玩,也是可以的

好了,我们正式开始Gclone下载安装步骤:

https://github.com/donwa/gclone/releases

直接去项目里找win版本的下载下来,比如说我现在下载最新版本是

gclone_1.51.0-mod1.3.1_Windows_x86_64.zip

解压到任意地方,然后在对应路径输入cmd打开cmd窗口,输入gclone config,如果当前路径下没有rclone.conf,则会自动寻找rclone默认的配置文件路径下的rclone.conf,建议和rclone放一块,毕竟autorclone目录下如果你运行过拷贝指令,会生成配套的rclone.conf,这个conf不太适合gclone使用。

和autoRclone不太一样的地方在于,它会直接读取rclone的配置文件并进行配置升级,添加新的配置条目,并且自带rclone所有功能,本质上不需要本地安装rclone,而autoRclone则是在autoRclone的安装目录下额外生成一个rclone.conf配置,通过环境变量自动找到本地的rclone并运行rclone.exe

所以,gclone是完整继承了rclone,而又有全面提升的一个mod版本,也是使用者较多的原因

经过第一章rclone的配置流程,gclone的配置几乎一样,我们只需要添加好service_account_file路径,这里演示路径为:

E:\software\AutoRclone-master\accounts\00e7a4ca46802b21eeaacede8e83402cc4eb6a2a.json

其次,新增一个service_account_file_path,这里演示为

E:\software\AutoRclone-master\accounts

此路径就是Gclone自动切换sa的功能所必须的配置

你熟练后甚至可以直接手动去C:\Users\user\.config\rclone目录下修改rclone.conf添加这俩条目

好了,gclone目前就可以正常使用了

以后你随身自带E:\software\AutoRclone-master\accounts那堆json sa信息,拿着C:\Users\user\.config\rclone目录下的rclone.conf,再搭配google group邮件地址,想占领哪里,群组就跑哪里去,谷歌网盘1pb拷贝大业,就看你的了。

[collapse status="false" title="以下是gclone常用指令参考示例"]

gclone copy drivename:{目录1的id} drivename:{目录2的id}  --drive-server-side-across-configs -v

没错,你肯定会发现一个与rclone不太一样的地方,那就是谷歌系网盘拷贝,不需要多个盘符,只需要你配置文件里自己定义的盘符名,因为实际使用的是SA,group入驻哪里,那么所有添加到group里的SA就有哪里的拷贝权限,而文件夹或者团队盘名的定义,也类似于autoRclone,直接使用文件夹或者团队盘的ID,整个拷贝指令算是非常简洁明了了
--drive-server-side-across-configs则是通过server side copy,-v是过程可视化,这都是rclone原本的指令参数
而对于共享文件夹拷贝到你的团队盘,指令也显而易见了:

gclone copy drivename:{共享目录id} drivename:{团队盘id}/yourfolderlist/ --drive-server-side-across-configs -v

id后可以跟随你需要的文件路径,类似原版rclone的格式

对于单文件,只需要将目录id改成文件的id,即可
我们来实际操作一下:

由于公开分享文件夹功能暂时只支持个人盘,我们看看个人盘里随便找点文件夹分享看看,直接复制这个文件夹的id
1vQnl-QAeR8yI69t38iWOk3HpLCBlPx7Z
准备转存到团队盘,新建文件夹movie吧,复制此文件夹ID:1fuvtquIXBD41kJqOQtwovv1zrWAjUNNI,指令如下:

gclone copy Gdrive:{1vQnl-QAeR8yI69t38iWOk3HpLCBlPx7Z} Gdrive:{1fuvtquIXBD41kJqOQtwovv1zrWAjUNNI} --drive-server-side-across-configs -v

超过750GB后的自动切换我就不测试了,这个一般没问题的
[/collapse]

gclone的使用基本上就完成了,注意gclone暂时不支持powershell运行,会优先读取当前目录下rclone.conf配置,尽量别和autoRclone放一块,其他基本上没有什么大问题了

4.AutoRclone&Gclone在linux系统下的安装配置

之前对于这两个工具的讲解,多多少少提到了linux系统下的内容,那么,我们在这一章节,以我个人比较熟悉的cento7 系统,快速配置一遍这两个工具,一来给有需要的朋友一个参考,二来也是让新手再次熟悉下各个工具的配置流程,有耐心的朋友可以对比理解下win和linux系统下每个工具操作的细节区别,和一些交叉互补的部分,最后能得到一个整体的把握,针对不同场景和需求可以灵活选择最合适的部署方案,那就更好了

4.a. 温习下centos7安装配置rclone

首先第三方epel源还有fuse等依赖都先安一遍

yum -y install epel-release
yum -y install wget unzip screen fuse fuse-devel

如果不需要挂载云盘,可以不安装fuse组件

git工具是方便直接从github拉项目安装用的

开启screen进行安装

screen -S intall

然后安装rclone

wget https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
chmod 0755 ./rclone-*/rclone
cp ./rclone-*/rclone /usr/bin/
rm -rf ./rclone-*

安好后运行配置

rclone config

直接配置私钥api吧
首先访问自己的谷歌开发者api控制台:

API控制台

启用Drive API接口后
新建Oauth认证信息:
Oauth
应用类型选择desktop app,随便填个Rclone命名都行,获得的client_ID和client_secret填入rclone配置里即可

然后 rclone config配置自己的 client_IDclient_secret即可

依次新建自己需要的其他盘配置,这个我就不再演示了,最后示范下常用的拷贝指令供参考

rclone copy -v --disable copy --stats 15s --bwlimit 80M --drive-acknowledge-abuse --max-size 100G --max-transfer 750GB --cache-chunk-size 5M --cache-chunk-total-size 5G --transfers 8 Gdrive:Galgame/ Onedrive:galgame/

-v可视化,
--disable copy 强制本地流量拷贝,减少服务器拷贝不稳定性,
--stats 15s,每隔15s更新进度状态,
--bwlimit 80M限制带宽80M,即640mbps以内
--drive-acknowledge-abuse
拷贝被标记违规文件,不能拷贝病毒文件,也不能拷贝不是自己所有权的违规文件
--max-size 100GB OneDrive目前单文件最大只支持100GB,超过的拷不过,别浪费资源
--max-transfer 750GB 单账号佛系拷贝,满每24h额度就停止
--cache-chunk-size 5M 每个数据缓存块单元大小,默认5m,越大理论上传越快,同时越占内存
--transfers 8 线程默认4,适合<512m内存vps,8线程建议>512m vps使用,如果是OneDrive,建议别超过8线程,那边api限制原因,多线程反而又副作用,谷歌这边对拷,根据自己vps宽带质量,磁盘io,自行增减

好了,rclone基本安装使用到此结束,ctrl+a+d,关闭screen页面,后台运行,安心下线即可,下次 screen -r恢复

对了,配置文件相关操作参考:
rclone config file - 显示配置文件的路径,

一般配置文件在 ~/.config/rclone/rclone.conf
即你当前用户是root的话,配置文件路径就是/root/.config/rclone/rclone.conf

rclone config show- 显示配置文件信息
如果想快速拷贝配置文件到你pc上备份,可以通过xshell快捷键ctrl+shift+f启动xftp,找到对应路径拷贝下来,或者安装lrzsz:

yum install lrzsz -y
sz /root/.config/rclone/rclone.conf

即可下载配置文件
而输入rz则是上传本地文件

特别注意:进入screen session后,同时按住(CTRL和A键)然后输入 :zmodem pass 然后再回车即可使用 rz/sz
如果你没注意直接在screen里面输入 rz/sz卡死,请先 ctrl+a+d退出当前窗口,退出访问:screen -D然后 screen -X -S seesionID/screenname quit

4.b.AutoRclone的安装配置

打开项目地址,查看官方安装脚本:
https://github.com/xyou365/AutoRclone
我们还缺少 git python3 python3-pip
那么先把python3 安装一下,打开官网文件库
https://www.python.org/ftp/python/
看来目前已经更新到3.9.0版本了,我们选个正式版3.8.5二进制文件包准备后续编译安装
Python-3.8.5.tgz
首先安装python3 依赖库和git

yum -y install git zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel gcc make

libffi-devel是python3.7以上版本新增的依赖库
我们将手动编译安装py3环境
如果你的依赖报错,建议yum update先更新,再尝试

wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz
tar -xvf Python-3.8.5.tgz
cd Python-3.8.5
./configure --prefix=/opt/python/python-3.8.5 --enable-optimizations --with-ssl

--with ssl是用来pip3管理包工具需要的,可能新版本不需要此项

指定编译安装路径,整理编译项目,预编译整理完毕
那么,开始正式编译安装吧:

make && make install

配置豪华的vps可以在make后加 -j4指令同时4 jobs加快编译,对于更高线程貌似优化效果一般

提示报错

Could not import runpy module

runpy 模块需要gcc 8.1.0以上版本才可以安装,我们查看下,centos7默认自带gcc版本应该是4.6.0样子:gcc -v

我的解决方法是通过添加新的源来安装gcc8版本,如果你嫌麻烦,可以直接安装centos8系统自带的gcc就是8版本以上了

好了,我们之前添加过epel源,再添加software
collections repository,直接yum安装:

yum install centos-release-scl

再安装gcc8和编译器:

yum install devtoolset-8-gcc devtoolset-8-gcc-c++

让我们的shell工具从默认的gcc版本切换到咱们新的gcc8则使用:

scl enable devtoolset-8 -- bash

输入 gcc -v应该就是8版本了

好了,我们再次尝试下编译安装python3:

./configure --prefix=/opt/python/python-3.8.5 --enable-optimizations --with-ssl
make & make install

编译安装完毕,提示python3和pip3管理包工具没有环境变量路径,我们配置下软链接,方便直接使用python3指令操作

ln -s /opt/python/python-3.8.5/bin/python3 /usr/local/bin/python3
ln -s /opt/python/python-3.8.5/bin/pip3 /usr/local/bin/pip3

输入 python3 -V pip3 -V
可以查看python3.8.5 和pip20.1.1都已经正确显示版本了

python3环境包安装完毕,我们继续看autoRclone官网,下载安装auorclone和相关依赖:

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

我们快速新建一个项目并增加100个sa吧:

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

忘记还需要我们的credentials.json授权文件了,输入 rz上传
再次输入快速创建指令

根据提示复制授权请求地址,chrome打开

稍等1分钟创建1个新的项目和100个sa账号
我的账号之前win10下安装授权autoRclone已经开启Service Usage API了,所以这里就不再提示打开网址请求授权了,如果你是新谷歌账号第一次安装autoRclone,这里还得根据提示再次授权新权限。
如果嫌创建缓慢,你可以放松一下,回来再看,你可以顺手计下项目名:saf-k6lbeya36m1okscme6y9lw8zbz

cd ./acccounts文件夹ls查看,100个sa已经下载完毕

python3 gen_sa_accounts.py --list-projects列出所有项目
python3 gen_sa_accounts.py --delete-sas saf-k6lbeya36m1okscme6y9lw8zbz删除指定项目下的SA文件
python3 gen_sa_accounts.py --create-sas saf-k6lbeya36m1okscme6y9lw8zbz

如果你创建超过1个项目,然后下载对应超过100个sa,最后发现自己是普通账号一天只能加100个sa到群组,建议手动删除本地accounts文件夹下所有json文件:

rm -rf /root/AutoRclone/accounts/*

然后输入

python3 gen_sa_accounts.py --download-keys saf-k6lbeya36m1okscme6y9lw8zbz

下载指定单个项目下的100个sa

查看自己所在目录,目前是AutoRclone下的话,直接给accounts文件夹打个包,存档备份

zip 100sa.zip ./accounts/*

sz 100sa.zip保存到本地

接下来,我们可以配置rclone,添加刚才的sa文件夹路径到配置文件里,就可以给rclone升级下功能,通过sa账号拷贝文件了,750gb限额用完后可以手动修改sa文件,替换,瞬间回血。
rclone config file指令找到配置文件位置
rclone config edit或者 rclone config show显示

你可以编辑添加sa路径,或者vi直接进去加一行都行,这里就不再演示。

cat /root/.config/rclone/rclone.conf

毕竟一般来说用到多sa的人,估计也不会手动折腾rclone了吧哈哈

我只演示下autorclone的拷贝指令:
找到两个共享盘的ID:
Anime:0AIl3Me6keYC1Uk9PVA
test:0AK-jeaa5dIZeUk9PVA

直接用autoRclone下的add_to_team_drive.py添加成员信息到团队盘。

python3 add_to_team_drive.py -d 0AIl3Me6keYC1Uk9PVA
python3 add_to_team_drive.py -d 0AK-jeaa5dIZeUk9PVA

自己注意人数是否完全添加成功

python3 rclone_sa_magic.py -s 0AIl3Me6keYC1Uk9PVA -d 0AK-jeaa5dIZeUk9PVA -dp /test2/ -b 1 -e 100

之前我简单提到过,自动切换账号的判定逻辑是两个:

if size_GB_done >= SIZE_GB_MAX or cnt_dead_retry >= CNT_DEAD_RETRY

当前sa已传输成功数据超过默认最大值735G,或者重复提交超过默认100次无文件传输

工具暂时是不记录上一次sa的传输情况的,所以要么自己手动修改rclone_sa_magic.py脚本文件里默认的CNT DEAD
RETRY值,要么自己手动修改-b 1为后续SA,否则可能要等3x100s,将近5分钟才会自动切换第二个SA,而第二个sa在之前也消耗完750GB限额的话,你还得继续等100次无文件提交后再切换
OK,这个sa对拷因为小文件比较多,我们先切出screen,继续演示SA添加到google群组,等会回来看看自动切换是否正常运转。

4.c.SA账号添加到google 群组,使用群组管理

先记下团队盘的ID,我们还是拿刚才两个盘做实验:

Anime:0AIl3Me6keYC1Uk9PVA
test:0AK-jeaa5dIZeUk9PVA

普通google账号创建的群组,得手动提取email地址上交到group:linux系统下这个可以直接指令操作,比win系统方便一些,win得专门的小工具辅助处理:

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

查看所有匹配的.json文件,筛选寻找“client_email"行,并打印输出第二段,也就是实际的邮箱地址段,translate 转换并删除,"部分。这样就能拿到所有的邮箱地址了,>代表输出保存到当前用户~/ 默认根目录下email命名文档,当前是root用户,所以就是/root/文件夹下

输入 sz ~/email即可下载email list

手动上传email到group即可
https://groups.google.com/my-groups
不清楚你们的账号是不是还是10人一次的限制,反正我一次性是可以上传100人的,单账号每日100人总限额还是一样的,无论你是否新建群组,一天最多添加100人

记下群组名:
plumn1@googlegroups.com

如果你是gsuite管理员,直接用autoRclone的脚本即可上传SA的json信息到群组,指令是:

python3 add_to_google_group.py -g groupname@yourdomain.com

相信会玩gsuite管理员的朋友,自己多多摸索下就行,这里不再演示

好了,我们screen -r切回sa对拷窗口,看看是否正常触发735g后自动切换,看上去一切正常,如果还未拷贝完成,我们节省时间,直接ctrl+c中断,开始测试group对拷效果。
rz上传之前的remove.py脚本

python3 remove.py --drive-id 0AIl3Me6keYC1Uk9PVA   --role fileOrganizer
python3 remove.py --drive-id 0AK-jeaa5dIZeUk9PVA   --role fileOrganizer

再复制群组邮箱地址,加入两个团队盘里

看一看群组生效没:

rclone --config rclone.conf size --disable ListR src001:/"sakimi chan 合集"/
rclone --config rclone.conf size --disable ListR dst001:/test2

测试下拷贝,避免长时间等待切换sa,我们去修改下100次未响应为5次:

vi rclone_sa_magic.py

搜索/CNT,修改为5次
这次不拷贝小文件数量太多的文件夹,节省时间,直接找sakimi chan 合集文件夹ID:
1vHU2C88NlN2Bj-BDwWSIx9VnKLUpCoHk
目前应该是SA 1已满额度,2拷贝了一些,看看自动切换:

python3 rclone_sa_magic.py -s 1vHU2C88NlN2Bj-BDwWSIx9VnKLUpCoHk -d 0AK-jeaa5dIZeUk9PVA -dp /test3/ -b 1 -e 100

一切正常,那么,autoRclone的入门演示,到此完毕

接下来,我们熟悉下Gclone的安装和操作,实际上gclone比autoRclone好上手很多,原理也是基本一样的

4.d.Gclone的安装和配置:

上一节autoRclone的安装和配置讲了一大堆,实际上你只需要记住两条即可:

  • 一、快速新建一个项目并增加100个sa:
python3 gen_sa_accounts.py --quick-setup 1 --new-only
  • 二、提取email地址:
cat ./accounts/*.json | grep "client_email" | awk '{print $2}'| tr -d ',"' > ~/email

autoRclone本身,你可以不去用,作为sa获取工具就行,我们拿着sa来玩gclone吧:

如果你对centos7安装python3觉得繁琐,完全可以尝试centos8,或者debian,ubuntu系统,或者windows下挂个全局安装,都很方便,甚至你可以完全抛弃批量生成,自己手动去google 开发者控制台一个个创建sa账号,保存邮箱,存入新的谷歌群组,10来个sa手动操作并不是什么为难的事情,总之量力而行,不一定要一口气全熟练,留着以后有空慢慢玩,先拿10个sa玩玩gclone,发现乐趣之后,再回头看看autoRclone的SA生成,python3的安装,说不定就发现原来很简单

新手觉得复杂头疼的主要原因,其实并不是知识点多难,而是新的环境新的操作太多,建议先消化最容易理解的部分,再去看自己觉得难以掌握的地方,难度就会降低

gclone的安装:

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

gclone version查看版本,会显示gclone mod version,没错,win系统下安装的时候我提到过,gclone是自动寻找rclone.conf直接在rclone配置上进行操作的

作者给他的定义就是一个rclone的 go语言mod

因为gclone包含了rclone的所有功能,自动换sa对拷和指令清爽度方面都有着全面提升,你完全可以

cp /usr/bin/gclone /usr/bin/rclone

将gclone所有指令替换成rclone,就当作魔改rclone使用,都是可以的
因为gclone的配置指令和常规操作指令全部传承的rclone,所以这里快速配置一遍,只需要新增sa文件地址和sa路径,我们先

ls ~/AutoRclone/accounts

选一个json文件名:0126499e53c0e2cff97f20f5338660d6d9da6c82.json
/root/AutoRclone/accounts/
在service_account_file>填写绝对路径:
/root/AutoRclone/accounts/0126499e53c0e2cff97f20f5338660d6d9da6c82.json
然后service_account_file_path>填写:
/root/AutoRclone/accounts/

找到我们默认存储的团队盘id
test:0AK-jeaa5dIZeUk9PVA
我们去tg电报群找点实时新资源看看拷贝下吧:

gclone copy Gdrive:{1ftB64w8Lnr-tkqvxSZ2Ny0RvScxaYSlS} Gdrive:{0AK-jeaa5dIZeUk9PVA} --drive-server-side-across-configs -v

全部存根目录不太美观,我们演示下加路径的指令:

gclone copy Gdrive:{1_5RFn7nDjtuwcS5Q8W0Hhx0LDq1_q4uK} Gdrive:{0AEo69BQhj4EIUk9PVA}/new4/ --drive-server-side-across-configs -v

Gclone的标准操作,相信你已经明白了

那么,建议你回顾下流程,自己搭建熟悉下,先享受下各种工具的便利吧

如果不满足于gclone的速度,或者说想通过telegraph bot更加快捷的转存文件,无需登录vps或者开启你的pc去输入转存指令,想实现随时随地外出旅行也可以便捷地拷贝资源
那么请稍作休息,开启我们下一章,关于gd-utils 百宝箱的配置
下一节:[post cid="724" /]
上一节:[post cid="722" /]

2.Python3环境和AutoRclone的安装

title.jpg
上一节:[post cid="721" /]

2.a.SA原理和作用介绍

说到SA,它是所有google云盘搬运工具的核心搬运工,创建大量SA账号,批量管理,我们一般用AutoRclone操作,后续很多同质工具和较为复杂的配置,都是基于SA账号的管理和批量使用。

如果你在接下来的学习中,发现后续步骤繁琐,原理理解一头雾水,那么,先好好掌握SA的批量创建和管理,就能获得关键的阶段性成果,先弄好这个,以后抽空再配置其他工具,会容易很多。

SA的批量获取一般用AutoRclone比较方便,而管理设置完毕后,我们就可以导入Gclone之类的开始享用了,那么,SA的获取和管理,大致的流程如下:

  1. 安装 Python3环境 和 AutoRclone
  2. 借助谷歌开发者平台,生成SA服务账号
  3. 将服务账号 service accounts 加入到 Google Groups方便管理和迁移
  4. 安装 gclone 开始复制文件

市面上很多类似的工具只需要把/root/.config/rclone/rclone.conf配置文件和AutoRclone/accounts/文件夹下的SA账号信息保存好,无论是迁移还是继续配置,都是通用的。
使用autorclone的脚本批量授权sa账号到你的团队盘ID里,目前似乎可能出现bug,如果在拷贝文件时,日志提示404文件不存在
报错日志的意思是找不到对应的目录ID,这种情况会发生在SA没有对应目录的阅读权限的时候。
当进行server side copy时,需要向Google的服务器提交要复制的文件ID,和复制的位置,也就是新创建的目录ID,由于在请求时是随机选取的SA,所以当选中没有权限的SA时,这次拷贝请求没有对应目录的权限,就会发生图中的错误。
所以,上述这些问题的源头是,sa目录下,混杂了没有权限的json文件.
解决办法建议上传sa到团队盘或者群组的时候,自己去团队盘成员管理或者群组页面看看增加的人数是否一致,再次上传一般就能补齐.

如果在后面的章节使用GD-Utils百宝箱时发生此种情况,还可以使用百宝箱自带的脚本验证,这个会在对应章节提到。

在项目目录下,执行 git pull 拉取最新代码
执行 ./validate-sa.js -h 查看使用说明
选择一个你的sa拥有阅读权限的目录ID,执行 ./validate-sa.js 你的目录ID
程序会读取sa目录下所有json文件,依次检查它们是否拥有对 你的目录ID 的阅读权限,如果最后发现了无效的SA,程序会提供选项允许用户将无效的sa json移动到特定目录。
将无效sa文件移动以后,如果你使用了pm2启动,需要 pm2 reload server 重启下进程。

2.b.开始安装python3

准备工具:

  • Google账号一个
  • Python3
  • 谷歌团队盘Team Drive
  • Rclone

开始:
以win10为例,配置AutoRclone:
前面提到,cmd工具需要全局代理,我们通过之前配置好的sstap转发所有本地流量到v2ray获得类似全局路由效果,然后打开cmd.exe
python3的安装,AutoRclone是使用python语言编写,基于rclone的拓展工具,我们在github页面下载此项目的源码zip打包:
https://github.com/xyou365/AutoRclone
和rclone,之前下载过了,就不再演示
https://rclone.org
如果你想本地挂载,可能还需要下载winfsp,类似于FUSE的文件管理工具
https://github.com/billziss-gh/winfsp
然后去python官网下载3系列:
https://www.python.org/
选个最新的exe 64位系统的安装包即可,如果你无法直接访问,记得像我一样挂好网页代理,一般的ssr或者v2ray就可以
Windows x86-64 executable installer
双击exe进行安装,记得勾选add
python3.8 to PATH,忘记的自己按照之前rclone加入系统变量path路径的方法,手动添加也一样。
选择自定义安装,只需要安装pip包管理器和py launcher方便运行即可
安装完毕,提示解锁系统路径字符长度限制,如果你的安装路径很长,记得解锁
然后打开cmd或者powershell输入python,查看是否安装成功
输入exit()退出或者直接关闭都行

2.c.配置autorclone所需依赖

python3安装完毕,我们再查看autoRclone的zip包
方便第一次接触AutoRclone的朋友,我们稍微看一下此工具主要4个功能:
rclone_sa_magic.py
gen_sa_accounts.py
add_to_team_drive.py
add_to_google_group.py

以及一个credentials文件夹和accounts文件夹

我们将AutoRclone-master代码文件夹解压放到E:\software目录下
然后在AutoRclone-master文件夹里打开cmd或者powershell工具

方法提供两个常用的:
1.直接地址栏输入cmd回车
2.shift+鼠标右键,选择在此处打开powershell(s)/命令(w)窗口

输入 pip3 install -r requirements.txt
开始安装autorclone项目需要的依赖包

如果你的pip3包管理器比较陈旧,安装依赖出错,可以尝试升级下pip3后再安装依赖:
python -m pip install -U pip
如果你对sstap和v2ray不熟悉,条件不具备,只有ss/ssr,可以尝试使用proxifier进行全局代理配置,搭配ss/ssr,这里简单说一下,演示在第一节提过:
添加proxy servers,地址127.0.0.1,端口用ss/ssr的本地监听端口,一般是1080,socks5代理,check
proxification rules 将localhost和ss/ssr添加直连action(direct),其他所有流量走刚才的127.0.0.1:1080
socks5代理,启动,百度输入ip,是你ss/ssr的服务器ip,则说明全局代理生效了

2.d.配置AutoRclone

https://developers.google.com/drive/api/v3/quickstart/python
默认项目名QuickStart即可,项目类型选择默认的Desktop app
点击下载授权文件:credentials.json
https://console.developers.google.com/
以后也可以随时去开发服务台下载该文件。
将授权文件放到autorclone项目下,或者你喜欢的其他文件目录下也行:
E:\software\AutoRclone-master\

2.e.批量创建SA服务号和项目

最后一个1代表要创建的项目个数,其中1个项目有100个服务号,1个服务号可以有750G/天的流量,100个就是75T,你不够用就创建个2-4个,越多越属于滥用,封号风险越大,自己把握,改末尾的数字为自己需要的项目数即可。如果你是谷歌个人账号,建议一次1个项目操作

python gen_sa_accounts.py --quick-setup 1

[collapse status="false" title="此时有三种情况,我们按需使用合适的指令"]

  1. 你的谷歌账号在https://console.developers.google.com/没有创建任何项目则进行如下操作:
    创建1个新的项目,并且生成100个sa账号,后续加入sa到此项目,并下载所有sa配置文件到autorclone的accounts文件夹下,那么久使用上述指令
  2. 你的https://console.developers.google.com/开发控制台之前已经创建过一些项目了,上述指令则会将你原来存在的所有项目下都创建100个sa账号,同时新建1个项目和对应的100sa。如果你只想在你的账号现状上新建1个项目专门用来生成管理sa账号和autorclone服务,那么使用如下指令:
python gen_sa_accounts.py --quick-setup 1 --new-only

修改数字则代表新建对应项目和x100数目的sa账号,而不影响已存在的项目。

  1. 你账号上已经有创建的项目,你不需要新建项目,只需要在现存的项目里创建sa账号,则使用如下指令:
python gen_sa_accounts.py --quick-setup -1

即采用负1即可。
[/collapse]

版本不同,你的系统是否已经安装python2,会导致python3默认操作指令可能不太一样,其他情况你的python如果没有对应指令,可以尝试将python改成py3,python3解决

弹出授权地址后,复制在浏览器中打开,此时登录的google账号务必是刚才创建quickstart
python项目所对应的账号,请保持一致,方可成功授权

如果是第一次使用,会让你打开页面请求开启google drive 的Service Usage API授权,类似提示:

Service Usage API has not been used in project 372668230525 before or it is disabled.
Enable it by visiting https://console.developers.google.com/apis/api/serviceusage.googleapis.com/overview?project=372668230525
then retry. If you enabled this API recently, wait a few minutes for the action
to propagate to our systems and retry.

浏览器打开后点击enable开启,再回到powershell/cmd,回车键再次尝试

查看我们的accounts文件夹下,应该成功下载了对应的sa账号信息了,先打个包留存备用吧
另外,点击https://console.developers.google.com/选择任意项目查看Credentials项,你也可以查看每个项目下100个SA账号信息。
SA账号的生成,就完成了,可以说,整个教程的核心,就是SA账号的获取,如有茫然,请多次观看,配合文字教程,巩固熟练

2.f.SA账号的操作和管理进阶

我们通过查看 帮助文件 python gen_sa_accounts.py -h,可以看到一些有用的参数,

[collapse
status="false" title="一些有用的参数"]

optional arguments:
  -h, --help            show this help message and exit
  --path PATH, -p PATH  Specify an alternate directory to output the credential files.
  --token TOKEN         Specify the pickle token file path.
  --credentials CREDENTIALS
                        Specify the credentials file path.
  --list-projects       List projects viewable by the user.
  --list-sas LIST_SAS   List service accounts in a project.
  --create-projects CREATE_PROJECTS
                        Creates up to N projects.
  --max-projects MAX_PROJECTS
                        Max amount of project allowed. Default: 12
  --enable-services ENABLE_SERVICES
                        Enables services on the project. Default: IAM and Drive
  --services SERVICES [SERVICES ...]
                        Specify a different set of services to enable. Overrides the default.
  --create-sas CREATE_SAS
                        Create service accounts in a project.
  --delete-sas DELETE_SAS
                        Delete service accounts in a project.
  --download-keys DOWNLOAD_KEYS
                        Download keys for all the service accounts in a project.
  --quick-setup QUICK_SETUP
                        Create projects, enable services, create service accounts and download keys.
  --new-only            Do not use exisiting projects.

[/collapse]

这里简单演示下两个可能会用到的参数

  1. 单独下载某个项目下的sa账号,使用上述参数的 --download-keys
  2. 删除多余的SA账号,使用参数 --delete-sas
    示例:
    python gen_sa_accounts.py --list-projects列出所有项目
    python gen_sa_accounts.py --delete-sas saf-86eg4v4tgm5k-w7rpw7r9ahwin删除指定项目下的SA文件
    https://console.developers.google.com/apis/credentials?project=saf-86eg4v4tgm5k-w7rpw7r9ahwin&folder=&organizationId=

查看该项目下sa文件都已经成功删除完毕了
但是,本地accounts文件夹下已经下载的sa 配置文件不会被删除,我建议是全部删除后,使用--download-keys选择性下载指定单个项目的sa,毕竟之后要用到群组管理的话,谷歌个人账号一天只能加100sa到群组里,如果想快速上手,就别一次性搞超过100个sa,一个个项目来,别急

python gen_sa_accounts.py --download-keys saf-u6cfsufzqb-dk6sogkz2p1yuop

我们尝试单独下载一个项目下的100sa文件,发现运作正常

就拿这100个SA作为下一步的示范吧
对了,别忘记把刚才删掉的sa补上:

python gen_sa_accounts.py --create-sas saf-86eg4v4tgm5k-w7rpw7r9ahwin

然后将SA文件夹路径配置到rclone里,没错,是rclone,AutoRclone也是基于rclone的功能进行了一些拓展,本质还是操作rclone的功能。
拷贝下文件试试效果吧!
拷贝完可以通过rclone指令指定AutoRclone文件夹下生成的conf文件配置来查询文件个数是否一致:

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

2.g. SA账号直接添加到团队盘流程

python add_to_team_drive.py -h查看帮助
此脚本用于直接添加SA账号到团队盘,属于标准操作,但是缺点还是很明显的:

  1. a.如果你是个松鼠党,每次大量sa添加删除还是非常繁琐的,虽然有自动删除团队盘里的sa脚本,不过等你发现用的时候失效了,得手动删600个sa的时候,心中肯定一万头草泥马奔过。
  2. b.团队盘加满600人后也占位置,不美观。
  3. c.有的edu团队盘无法在域外分享,直接用SA走服务端拷贝到别的团队盘可能会遇到阻碍。
  4. d.好心大佬邀你进团队盘拷贝,肯定不太想看到你拖儿带女几十上百号人涌入。

而且autoRclone的自动切换处于beta测试阶段,一般都只是用来生成sa账号,推荐操作还是添加群组,之后都是拿gclone和更快更强的自动切换工具来玩,把autorclone丢一边当个工具人而已。
如果你没有团队盘,网上找找免费的或者买些吧,对于不同渠道的团队盘风险和靠谱程度,我在后面单独来说。
如果你不用团队盘。个人盘每24h 750gb限制,使用sa的意义可以忽略,当然,只需要rclone的话,也不会来看这篇教程了对吧
好了,我们作为基础演示,还是过一遍sa直接添加到团队盘的流程吧:

python add_to_team_drive.py -d SharedTeamDriveSrcID
python add_to_team_drive.py -d SharedTeamDriveDstID

而团队盘ID是打开团队盘,根目录所在网址,形如:
https://drive.google.com/drive/u/0/folders/0AHKb_1xkottteskvg

上面的连接里0AHKb_1xkottteskvg就是团队盘的ID,文件夹ID也是类似查看
这里演示一下:

python add_to_team_drive.py -d 0AIl3Me6keYC1Uk9PVA

可能一次没有完整上传,多执行一次看看。这个bug,在后续gd-utils百宝箱有相应检测指令可以剔除未成功加入的sa账号

python add_to_team_drive.py -d 0AK-jeaa5dIZeUk9PVA

将你的资源盘ID和目标盘ID找出来,将之前的sa人员添加到两个团队盘里,就可以操作两个盘文件的相互拷贝等功能了。当然了,两个盘建议你都设置成管理员,像删除文件夹,清空回收站需要“Manager"管理员权限而不仅仅是content Organizer

接下来就可以开始拷贝拉,对于走服务器的流量(server side copy),适用于公开分享的文件夹链接到团队盘,以及团队盘到团队盘的拷贝。
[collapse status="false" title="参考指令示例:"]

python rclone_sa_magic.py -s SourceID -d DestinationID -dp DestinationPathName -b 1 -e 100

注意-begin -end的sa账号序列,这里是100个sa,所以-e 100即可。
如果是大量小文件的分享地址,很难完整快速读取一遍的话,可以加入
--disable_list_r来跳过文件列表读取,不推荐日常使用此跳过指令

ID可以是团队盘也可以是文件夹ID, DEstinationPathName则是对应ID下创建的文件夹名,没有就会新建。
好,我们实际演示下,拷贝anime团队盘下的文件夹到test团队盘根目录看看效果:

python rclone_sa_magic.py -s 1vHU2C88NlN2Bj-BDwWSIx9VnKLUpCoHk -d 1xTbn_MeTbAZkX4HZa0gbuk-eHVtHCFw8 -dp /new/test/ -b 1 -e 100

运行拷贝后,autorclone会自动生成rclone.conf配置文件到安装目录下,通过环境变量自动运行rclone,所以rclone不需要和autorclone放一块的。打开autorclone目录下的rclone.conf可以发现形如

[src001]
type = drive
scope = drive
service_account_file = E:/software/AutoRclone-master/accounts/00e7a4ca46802b21eeaacede8e83402cc4eb6a2a.json
root_folder_id = 1vHU2C88NlN2Bj-BDwWSIx9VnKLUpCoHk
[dst001]
type = drive
scope = drive
service_account_file = E:/software/AutoRclone-master/accounts/00e7a4ca46802b21eeaacede8e83402cc4eb6a2a.json
root_folder_id = 1xTbn_MeTbAZkX4HZa0gbuk-eHVtHCFw8

的配置文件,配置好了资源盘和目标盘的SA信息,而默认的拷贝是3个tps乘3个SA线程transfer,每秒请求9次,而演示文档只有600来GB,1个SA就搞定了,系统提示其他线程的无法访问,是正常的

我们使用rclone size指令核对下拷贝结果:

rclone --config rclone.conf size --disable ListR src001:/"sakimi chan 合集"/
rclone --config rclone.conf size --disable ListR dst001:/new/test

为了测试是否会自动切换跑满的sa,我们再次拷贝这600来GB文件到test盘,这次换个dp目录名:

python rclone_sa_magic.py -s 1vHU2C88NlN2Bj-BDwWSIx9VnKLUpCoHk -d 0AK-jeaa5dIZeUk9PVA -dp /anotherdir/ -b 1 -e 100

可以发现,当系统判定sa1没有速度后,自动替换成sa2开始接力,虽然判定逻辑是CNT_DEAD_RETRY = 100 100次无文件传输后切换大概是300秒,5分钟,而没有统计出第一次的size_GB_done(600GB+)+第二次的size_GB_done(138GB)实际已经size_GB_done大于SIZE_GB_MAX = 735

可能是没做多次运行使用量累加运算吧,不过不算多碍事。核心判定做的是两个条件,嫌切的慢,自行减少CNT_DEAD_RETRY =100默认值就行。

判断切换SA触发逻辑核心
if size_GB_done >= SIZE_GB_MAX or cnt_dead_retry >= CNT_DEAD_RETRY

为了减少演示等待,我将cnt_dead_retry设置为5次,这样只需要等待15s左右就可以跳过达到上限的sa账号了
演示完毕,此刻你基本上可以完成团队盘到团队盘大量文件对拷,相对于普通rclone就是质的提升了,除了每次要打开powershell手动指令拷贝一下,已经是非常够用了,除了成员创建名字丑了点,本地win要挂下全局代理,没其他大毛病了。

对于本地到团队盘,则可以用类似指令拷贝:

python rclone_sa_magic.py -sp YourLocalPath -d DestinationID -dp DestinationPathName -b 1 -e 100

我们也演示下将本地一个文件夹上传到test团队盘根目录:

python rclone_sa_magic.py -sp G:\"OneDrive - omo.moe"\图片\loli -d 0AK-jeaa5dIZeUk9PVA -b 1 -e 100

一切顺利。
查看autoRclone安装目录下的log_rclone.txt可以检查日志记录

[/collapse]

这样,autoRclone普通用法基本上就告一段落了。由于autoRclone对OneDrive之类拷贝到google drive这些rclone原生功能支持全面程度不够,操作的不太人性化。
我们将SA加入群组,使用群组操作SA这些功能,使用Gclone来替代。

linux系统可以使用

tail -f log_rclone.txt

来查看拷贝日志。

2.h.提取SA信息,加入群组

提取sa之前,我们先把之前加入团队盘的sa删除掉,使用脚本:https://github.com/Rhilip/AutoRclone/blob/master/remove.py

使用方法则是:

python remove.py --drive-id  --prefix  --suffix --role

匹配邮箱地址前缀或者后缀,或者角色,这里我们用autoRclone默认分配的成员角色都是fileOrganizer,即文件管理员,那么直接用此匹配条件删除即可,示例:

python remove.py --drive-id 0AK-jeaa5dIZeUk9PVA --role fileOrganizer
python remove.py --drive-id 0AIl3Me6keYC1Uk9PVA --role fileOrganizer

这样两个测试盘里的sa用户全部清除完毕
我们开始思考如何提取SA文件里的邮箱,用户名这些特定信息,用来添加群组成员

  1. 方法1:chrome插件
    https://chrome.google.com/webstore/detail/email-extractor/jdianbbpnakhcmfkcckaboohfgnngfcc
    chrome浏览器安装完毕后,访问
    https://console.developers.google.com/
    开发者控制台,找到对应项目下的sa列表,选择每页显示100个,启用email extractor插件,发现邮箱地址,选择save as csv文件,下载完毕后修改后缀为.csv即可
  2. 方法2:大佬的分割 提取脚本:
    window系统,可以使用大佬的脚本:
    https://www.bilibili.com/read/cv5428249/
    这个文章里面提供的exe脚本getuserByFeiFan,不太确定原作者是谁,放到autoRclone安装目录下的accounts文件夹里面再运行
    然后还有这个loc大佬的py脚本和项目地址:
    https://www.hostloc.com/thread-670126-1-1.htmlhttps://github.com/Sheldonsix/A-python-script-of-AutoRclone-or-gclone
    这个脚本基于python3,可以输出用户名和邮箱,自己手动改下路径,保存的email文件名,然后后缀保存为.py即可在powershell里面通过python环境运行
    另外
    linux系统下,可以直接使用系统自带指令处理.json 用户信息,提取为txt,这个我们放到linux安装autoRclone的流程章节会详细再说

    [collapse status="false" title="Linux 系统批量提取sa中email信息指令"]

    参看 http://fxxkr.com/2020/04/06/onekey-print-email-from-google-sa-json/
    其中$path = json文件所在目录 #例如 /root/accounts
    最终保存 email 至 ~/email文件中,命令如下

    cat $path/*.json | grep "client_email" | awk '{print $2}'| tr -d ',"' > ~/email

    awk grep sed都是常用的正则表达处理数据用的指令
    如果想要每 10行 分组空行可以把命令简单改成这样

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

    非 GSuite Admin,咱们普通用户使用这个10行分组模式可以方便复制导入 GoogleGroups 不容易眼花(推荐)
    不过我账号实测一次性加入100个成员也是没问题的

    cat ~/email

    就可以查看是否ok了,如果想方便使用vps运行此指令,需要从windows上传你的sa json文件的话,可以使用xshell的lrzsz功能,实现win和linux文件快速传递。
    xshell连上vps,输入

    yum install lrzsz -y

    安装完毕lrzsz,输入rz回车,即可选择本地上传100个.json文件到vps,执行完毕后,输入sz 文件名,则下载到本地电脑。
    这里就不做演示了,此方法在centos7安装antoRclone流程中再做演示了。
    [/collapse]

    另外,如果你是gsuite管理员,创建的群组可以直接通过autoRclone的
    add_to_google_group.py脚本上传,指令演示:

    python add_to_google_group.py -g groupname@yourdomain.com

    我们拿到了email清单,就可以开始创建群组了

2.i.创建群组:

https://groups.google.com/
点击CREATE GROUP红色按钮创建新的群组,提示升级新的群组版本建议升级后再操作
填写群组信息,只需要记住Group email address并保持Group type为默认的Email list即可

添加成员,我测试应该是可以批量加人的,没有10个一次的限制,但是每日100个限制还是100个
建议认真复制,重复传错的貌似也算进每日限额100个里。
然后将群组邮箱地址依次加入需要拷贝的两个团队盘中,设置为管理员权限,测试下效果吧:
依然是拷贝之前的文件夹,检查全局代理状态正常后。
拷贝anime团队盘下的文件夹到test团队盘根目录看看效果:

python rclone_sa_magic.py -s 1vHU2C88NlN2Bj-BDwWSIx9VnKLUpCoHk -d 1xTbn_MeTbAZkX4HZa0gbuk-eHVtHCFw8 -dp /new/test1/ -b 1 -e 100

发现经过15s左右,自动跳过第一个已经满750gb额度,然后第二个账号拷贝完接近300GB后,也达到750GB额度不再传输文件,等待15s,自动切换到第三个sa。最后拷贝完毕,一切正常。
好了,我们回味下群组和普通sa拖家带口的区别,很明显,群组的优势就是无需通过脚本或者手动上传大量sa账号到团队盘,而且删除的时候,群组小手一点移除一个邮箱即可,而sa账号批量删除没有调用google drive api的脚本操作的话,简直是酸爽。无论是居家旅行,拜亲访友,群组都是大家喜闻乐见的选择,而且某些教育盘跨域分享,直接域外sa成员加入还无法拷贝出域,群组可以绕过此类限制。

2.j. AutoRclone的流程小结

虽然目前gclone和gd-utils百宝箱越来越便利和热门,我还是一板一眼给大家介绍了autoRclone的基本操作。
其实从日常操作指令上来说,autoRclone学习成本是要高于Gclone的,虽然它主要面向针对团队盘对拷团队盘,公共共享文件夹拷贝至团队盘,功能没有gclone保留的rclone功能完整,但是它和Gclone的部署流程和操作原理,几乎是一模一样的,我们熟悉下autoRclone的操作后,再配置Gclone就非常容易理解了:

接下来第三章,我们开始gclone的安装流程

下一节:[post cid="723" /]
上一节:[post cid="721" /]

另外附送关于google drive api报错解决方案可参考阅读:
https://developers.google.com/drive/api/v3/handle-errors