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)新 Project、Drive 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 ID 和 Client 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 SDK 是 GSuite 相关的 SDK,在本文中的用途是向群组中添加成员,以方便 SA 的管理。启用方法和上面描述的基本一致,这里就不再重复了。

创建群组

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

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

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

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

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

AutoRclone

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

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

Terminal window
cd AutoRclone
pip install -r requirements.txt

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

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

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

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

Terminal window
python add_to_google_group.py -g testdrive@mmf.moe

注意这里的 testdrive@mmf.moe 是上面群组的邮箱。至此,SA 的配置就全部完成了。

结语

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

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


Previous Post
『サクラノ詩 -櫻の森の上を舞う-』通关感想
Next Post
「さくら、もゆ。」的空白字体列表——一次逆向问题定位过程实录