[转载] AutoRclone + Gclone

由 cfandora 发布

前言

由于115也开始严重限速,阿里云盘永久空间只有约2.8T(其余空间要一直做活动才能延期),所以本人开始转移到google drive和onedrive这两个地方。Onedrive可以自行申请e5获取125T空间,google drive找朋友开了几个team drive

其中115和阿里云盘可以用clouddrive挂载到本地,阿里云也可以用alist等web程序做webdav然后用rclone挂载,od和gd可以自行申请api挂载rclone,之后再用rclone copy进行转移

关于国内访问gd和od国际版的问题:gd可以套cf worker实现国内直连,od国际版则可以通过修改DNS为阿里的来实现高速,下图为我IDM跑od国际版和直连套了cf worker的gd的速度:

由于google drive单账号每日的上传下载都有限,而且也影响其对应的出口流量限制,故需要使用SA来避免这一现象。


以下内容转载自菜佬的博客,已获授权


流程

  1. 装环境
  2. 获取 API token
  3. 生成 SA 账户(Service Accounts)
  4. 将 SA 账户添加到 GoogleGroup
  5. 将包含 SA 的 GoogleGroup 账号添加到 GD 里
  6. 配置 Gclone

安装 AutoRclone

先装环境,这里的代码只适合 Ubuntu / Debian 系。

# 安装 git python3 python3-pip
apt install -y git python3 python3-pip
# 验证 python3 和 pip3 安装情况
python3 -V
pip3 -V
# 下载 AutoRclone
git clone https://github.com/xyou365/AutoRclone && cd AutoRclone
# 安装 AutoRclone 的依赖
python3 -m pip install -r requirements.txt

获取 API Token

这块可能有亿点点麻烦,Google 修改了下启用逻辑。

官方的教程,可以去这里看一下 GCP 启用 API 的流程。当然,你也可以跟着我的走。

 1. 先去这里准备创建项目,首先先选择自己的地区,在这里,我选择香港。如果你没有弹出提示的话,直接跳过这一步就好。

 2. 在选完地区后,点击左上方的 新建项目

 3. 在弹出的窗口中选择右上角的 新建项目
 4. 创建一个项目,如下图所示:

 5. 点击左侧的 API 与服务

 6. 搜索 GoogleDrive 并点击搜索结果中的 GoogleDrive,在新的页面中启用 GoogleDrive API

 7. 按照上面的方法,搜索并启用 Service Usage API
 8. 回到这里,点击左侧导航菜单当中的 API 和服务 中的 OAuth 同意屏幕

 9. 填写信息,这里分为四步

  • 第一步,选择外部,然后填写必填的信息,如应用名称 用户支持电子邮件 开发者联系信息
  • 第二步,什么都别管,直接下一步
  • 第三步,也是什么都别管,下一步
  • 第四步,什么都别管,OK 了

 10. 发布正式版应用

 11. 点击左侧的凭据,并点击上方的 创建凭据 当中的 OAuth 客户端ID 并创建新的ID。

 12. 在创建好后,会弹出刚刚创建好的 API,点击 下载 json 即可
 13. 在下载完 json 文件后,将其重命名为 credentials.json 然后放入你刚刚下载的 AutoRclone 的文件夹内。


生成 SA 账户

这里我只介绍手动创建,不会介绍自动创建 SA 账户,因为自动创建的 SA 账户我觉得离谱,命名什么的很不舒服

# 先列出账号下的 projects
python3 gen_sa_accounts.py --list-projects

在第一次执行这个步骤的时候,可能会让你输个 code,如下:

python3 gen_sa_accounts.py --list-projects
Please visit this URL to authorize this application: https://accounts.google.com/o/oauth2/auth?一大长串链接
Enter the authorization code:

复制里面的链接到浏览器打开,然后照着走,授权全给,最后你会拿到一串代码,复制进去。再次重复列出步骤:python3 gen_sa_accounts.py --list-projects

如果你在这一步遇到了 400 或者 403 错误,那有可能是你发布的应用没被审核的缘故(别问,问就是不知道为啥 google 改了政策还是我这边网络延迟还是其他奇奇怪怪的问题)。如下图:
那么你可能需要在 OAuth 同意屏幕 里将你的应用回退到 测试版 并在下方的测试用户里加上你的邮箱,如下:

# 然后你应该能看到这样的结果
[email protected] ~/AutoRclone # python3 gen_sa_accounts.py --list-projects
Projects (1):
 asd-shdu291hs918312-1

# 然后你可能需要开启一下服务,要注意的是,ProjectName 是你上面的输出,比如我的是 asd-shdu291hs918312-1
# 那我就应该输入 python3 gen_sa_accounts.py --enable-services asd-shdu291hs918312-1

python3 gen_sa_accounts.py --enable-services ProjectName

# 为你的 Project 生成 SA
python3 gen_sa_accounts.py --create-sas ProjectName

# 下载指定 Project 中 SA 文件
python3 gen_sa_accounts.py --download-keys ProjectName

需要注意的是,每一个 Project,也就是一个项目,最多 100 个 SA,每个 SA 一天最多 750G 上传限制,也就是说,你每有一个 Project 就可以有接近 70T 的上传,如果你觉得不够,那么你还可以继续创建更多。

# 继续创建 Project,Num 为要创建的 Project 数量
python3 gen_sa_accounts.py --create-projects Num

# 这里还有一些可能用的到的命令:

# 列出指定 Project 中的 SA

python3 gen_sa_accounts.py --list-sas ProjectName

#删除指定 Project 中的全部 SA
python3 gen_sa_accounts.py --delete-sas ProjectName

将 SA 添加到 Group

复制下述代码,在 AutoRclone 目录下运行

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

然后你就可以在当前屏幕上看到你的 SA 的邮箱了。或者你也可以在 email.txt 文件里找到这些邮箱。将这些邮箱复制,准备添加到 GoogleGroups 里。

 1. 首先去Google 群组创建一个群组,需要注意的是,电子邮件将会是你这个群组的电子邮件
 2. 创建好后,点击左侧的人员,再点击添加成员

 3. 将最多 100 个邮箱复制到 群组成员 里,点击添加即可。
 4. 然后点击左侧的关于,找到你的群组电子邮件,将其添加到你的 GoogleDrive 的成员里。

需要注意的是,每 24 小时最多添加 100 个用户,如果显示上限,就明天再添加一次。在 2022年后有不少朋友告诉我添加 20 个以上用户就会报错,且即使添加错误也会算到 100 用户的限制里,这里推荐每次添加 10 个到 20 个用户。

配置 Gclone

# 先确定下自己有没有装 gclone,输入下面的命令
gclone -V

# 如果提示command not found,输入下面的命令
bash <(wget -qO- https://git.io/gclone.sh)

配置 Gclone 的大体流程和配置 Rclone 大同小异,几乎没有任何区别,只是需要在出现 service_account_file_path 选项时填入 AutoRclone 目录下的 accounts 的绝对路径,如下图:


结尾必须为 / 不然会报错


gclone 在使用方式上,与 rclone 没有任何区别,以下给出一个例子:

gclone copy -v --status 1s sharedgd:/ mygd:/ --drive-server-side-across-configs --bwlimit 20M

更详细的使用方法可以去看官方 Github


仅有一条评论

  1. 小菜
    小菜 · 2022-03-07 17:06

    多啦菊苣带带我

发表评论