Skip to content

GSuite 探索篇(1)使用 Service Account 向 Google Drive 传输文件

Published: at 02:53

最近入手了 GSuite Business,之前梦寐以求的各种功能终于是可以用了,最亮眼的就是无限空间的 Google Drive。之前一直为团队盘的安全性和可持续性所困,自己全局之后这些问题自然也就解决了。于是就可以快乐 GDrive 了(

工具

这篇文章中用到的工具有:

安装过程直接 git clone 就可以了。

Service Account?

标题提到了 Service Account,那这个 Service Account 究竟是干什么的呢?

Service Account(以下简称 SA),在目前的使用案例中,是用来规避 Google Drive 上传限额的帐号。由于每个帐号的上传限额是 750GB/天,因此大量 SA 就可以一次性传输大量的数据。

对于普通用户而言,一天 750G 其实完全够用,但一旦转存大量文件,比如以 T 计的分享,750GB 就完全不够了。这也是 SA 存在的意义。

Google APIs

所有工具的使用都离不开 Google API,因此第一步就是配置 API

(1/4)新 ProjectDrive API

这一步的内容是创建项目,开启 Drive API,并生成一个凭据。看似内容很多,不过好在 Google 给我们提供了非常方便的 QuickStart,只要管点点点就行了。通过下面的链接:

https://developers.google.com/drive/api/v3/quickstart/python

Step 1: Turn on the Drive API 那里直接 Enable the Drive API 就可以了。这里可以随便起个名字,但最好还是起个能看的(

随便起名就可以了(
随便起名就可以了(

起好名之后点击 Next,这里可能需要等待比较长的时间。待加载结束(其实是 API 调用结束)之后,直接使用默认设置,点击 Create 即可。

使用默认的 Desktop app
使用默认的 Desktop app

又是等待。在此之后,我们就可以得到后续配置所需的 Client IDClient Secret 了。因为后续也会用到,因此我们也要下载这里的 Configuration

点击 Download Client Configuration 下载 credentials.json,为什么我都没打码呢?因为写完之后这个项目已经被删掉了(
点击 Download Client Configuration 下载 credentials.json,为什么我都没打码呢?因为写完之后这个项目已经被删掉了(

到这里,我们就已经可以通过 Google APIs Console 来查看我们的项目(Project)了。链接如下:

https://console.developers.google.com/apis/

可以看到我们的新 Project (credits @开发者工具)
可以看到我们的新 Project (credits @开发者工具)

(2/4)OAuth 同意屏幕(可选)

这一步修改的内容是 OAuth 同意屏幕以符合直觉。我们首先来到 OAuth 同意屏幕:

「OAuth 同意屏幕」页面
「OAuth 同意屏幕」页面

然后点击 「修改应用」:

修改页面
修改页面

在这里我们需要修改的内容有「应用类型」、「应用名称」。由于我们是 GSuite,因此应用类型选择内部即可;应用名称因为上面我们用了 Quick Start 所以默认是 Quickstart,修改一下即可。

最后,滚动页面到底部,点击保存即可。

(3/4)启用 Service Usage API

Service Usage API 的作用是帮助我们了解帐号使用情况等信息。在这里顺带简单介绍一下新 API 的启用方法。

首先,来到信息中心,点击右边的「启用 API 和服务」:

然后,在跳转后页面的搜索框里搜索 Service Usage API

不需要回车,然后点击搜索到的目标:

点击启用即可。稍等片刻,对应的 API 就会显示在信息中心底部了:

(4/4)启用 Admin SDK

Admin SDKGSuite 相关的 SDK,在本文中的用途是向群组中添加成员,以方便 SA 的管理。启用方法和上面描述的基本一致,这里就不再重复了。

创建群组

对于大量的 SA(通常以百计),一个个手动配置显然是不现实的。不过好在 Google Drive 可以直接增加一组,而实现这个「一组」的就是 GSuite 的群组功能。

这里我们创建一个群组,来把所有之后创建的 SA 归到一起。进入「群组」页后单击「创建群组」,首先是填写一些基本信息:

这里要记下填写的「群组电子邮件」,之后会用到。如果创建完之后在设置里修改这一项的话,之后的创建可能会出问题,因此请尽量想好再下一步。

然后是控制权限,这里我选择的是「团队」:

最后点击「创建群组」即可。

AutoRclone

AutoRclone 可以帮助我们快速创建 SA 并加入群组,我们依次来看。

进入 AutoRclone 目录,首先我们需要安装依赖:

Terminal window
1
cd AutoRclone
2
pip install -r requirements.txt

然后,我们需要生成 SA。在此之前,我们需要把之前下载得到的 credentials.json 放到 AutoRclone 目录下。然后,执行下面的脚本就可以了:

Terminal window
1
python gen_sa_accounts.py --quick-setup -1

等待执行完成,我们就可以得到大量的 SA 账户了。执行的过程中需要一次 OAuth 验证,只要登录 Google 帐号点点点就可以了。

之后就是将 SA 批量加入群组。我们将 credentials.json 复制到 credentials 目录下,然后执行:

Terminal window
1
python add_to_google_group.py -g [email protected]

注意这里的 [email protected] 是上面群组的邮箱。至此,SA 的配置就全部完成了。

结语

SA 配置完之后能做的事情就多了,比如使用 gd-utilsgclone 之类的工具,基本不需要限额导致的失败问题了。

无限空间真的太香了,之后得把硬盘里那些有的没的都丢上去(笑)