惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

W
WeLiveSecurity
The Last Watchdog
The Last Watchdog
Application and Cybersecurity Blog
Application and Cybersecurity Blog
G
Google Developers Blog
博客园 - 叶小钗
雷峰网
雷峰网
人人都是产品经理
人人都是产品经理
博客园_首页
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 三生石上(FineUI控件)
Help Net Security
Help Net Security
Cloudbric
Cloudbric
AI
AI
N
News | PayPal Newsroom
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 【当耐特】
Forbes - Security
Forbes - Security
美团技术团队
Stack Overflow Blog
Stack Overflow Blog
SecWiki News
SecWiki News
H
Heimdal Security Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
MyScale Blog
MyScale Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
P
Proofpoint News Feed
S
Security @ Cisco Blogs
Google DeepMind News
Google DeepMind News
V
V2EX
大猫的无限游戏
大猫的无限游戏
阮一峰的网络日志
阮一峰的网络日志
S
Security Affairs
L
LangChain Blog
The Hacker News
The Hacker News
F
Full Disclosure
aimingoo的专栏
aimingoo的专栏
Hacker News - Newest:
Hacker News - Newest: "LLM"
腾讯CDC
Webroot Blog
Webroot Blog
A
About on SuperTechFans
H
Hacker News: Front Page
Cyberwarzone
Cyberwarzone
WordPress大学
WordPress大学
L
LINUX DO - 热门话题
Recent Commits to openclaw:main
Recent Commits to openclaw:main
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Attack and Defense Labs
Attack and Defense Labs
M
MIT News - Artificial intelligence

Yesterday17's Blog

2026 新年解密红包 / Melody Flag | Yesterday17's Blog 谈谈 Iori 的设计思路(二):如何实现一个 Showroom 录制工具? | Yesterday17's Blog 谈谈 Iori 的设计思路(一):从 Nico Timeshift 说起 | Yesterday17's Blog Iori Minyami 0.1.0 发布 | Yesterday17's Blog 2025 新年解密红包 / Melody Flag | Yesterday17's Blog 使用 Cloudflare Warp 解决罗森票务的海外登录问题 | Yesterday17's Blog How To Blog 04: The Astro v5 Era | Yesterday17's Blog 谈谈 tokio::select! 的公平性 | Yesterday17's Blog Learning Pingora 05 - Connect with TLS | Yesterday17's Blog Leaving Bytedance | Yesterday17's Blog 大橋彩香 AsiaTour「Reflection」上海公演 个人向记录 & Repo | Yesterday17's Blog Recoving from burnout - What happened? | Yesterday17 Yubikey 重建手册 | Yesterday17's Blog How To Blog 03: Heimus | Yesterday17's Blog 🪧 Blog Migration Accouncement | Yesterday17's Blog Learn Your IDE - VSCode 是如何仅重启插件的? | Yesterday17's Blog How To Blog 02: Astro❤️Password | Yesterday17's Blog How To Blog 01: Why, How, and the Future | Yesterday17's Blog Learning Pingora 04 - Establish L4 Connection | Yesterday17's Blog Learning Pingora 03 - Upstreams and Peers | Yesterday17's Blog Learning Pingora 02 - A Simple HTTP Server | Yesterday17's Blog Learning Pingora 01 - Getting Started | Yesterday17's Blog 2024 新年解密红包 / Melody Flag | Yesterday17's Blog 向新的一年飞驰——记录 2023 | Yesterday17's Blog 「サクラノ刻」对话选摘(2) | Yesterday17's Blog PGP Key Revocation 注销声明 | Yesterday17's Blog 「サクラノ刻」对话选摘(1) | Yesterday17's Blog 2023 新年解密红包 / Melody Flag | Yesterday17's Blog 『蒼の彼方のフォーリズム』通关感想 | Yesterday17's Blog 单显卡直通教程 | Yesterday17's Blog 对博客与笔记的思考 | Yesterday17's Blog Project Anni 之旅(3)自动化 Flutter 应用 CI/CD 上架流程 | Yesterday17's Blog AsobiStage 直接播放链接 | Yesterday17 如何在后分P时代进行投稿——sswa使用详解 | Yesterday17's Blog JSON RPC 与 LSP 协议基础 | Yesterday17's Blog Grajapa Shueisha / BookEnd 加密方式调查 | Yesterday17's Blog 【2022篇+WriteUp】如何再收一个新年红包? | Yesterday17's Blog 如何将良心云的良心功能清理干净 | Yesterday17's Blog 【油猴脚本】bilibili 投稿页面返回旧版+旧版页面强制允许分P上传 | Yesterday17's Blog Cloudr1v1 授权方式分析 | Yesterday17 Typora 1.0.2 逆向实录 | Yesterday17's Blog Project Anni 之旅(2)ValueAfterTable——toml-rs的实现与限制 | Yesterday17's Blog IPv4透明代理+IPv6 Passthrough——树莓派单臂软路由折腾记 | Yesterday17's Blog Chaos; Child 汉化补丁 神秘编码探索 | Yesterday17's Blog 镣铐与舞蹈——个性与共性之迷思 | Yesterday17's Blog Go 学习笔记 02 - 找准 io 之道 | Yesterday17's Blog NAT Slipstreaming v1 原理浅析 | Yesterday17's Blog 绕过「9-nine-」的 CDKEY 验证——KrkrPlugin 正(?)向实录 | Yesterday17's Blog 静流的青春纪念册——「サクラノ刻 -櫻の森の下を歩む-」体验版感言 | Yesterday17's Blog Project Anni 之旅 01 - 从 clap-builder 到 derive | Yesterday17's Blog [Google CTF 2021] CPP WriteUp | Yesterday17's Blog 获取 アソビステージ 的实际播放链接 | Yesterday17's Blog 90 行 Rust 代码实现 AsyncTeeReader | Yesterday17's Blog 或许还算有价值一读的文章列表 | Yesterday17's Blog 从零开始的 Seedbox 之旅 | Yesterday17's Blog [随笔]技术型博客行文迷思(1) | Yesterday17's Blog 浅谈 git fetch 的工作方式 | Yesterday17's Blog 『ソーサレス*アライヴ! ~the World's End Fallen Star~』通关感想" | Yesterday17's Blog Rust std::fmt 格式语法简述 | Yesterday17's Blog 日亚修改居住国的解决方案 | Yesterday17's Blog [Windows/Linux] GC553 的 Switch 完美采集之路 | Yesterday17's Blog 【翻译】Subtyping and Variance / 子类型与变型 | Yesterday17's Blog Berd's Red Envelope 2021 WriteUp | Yesterday17's Blog 【中英对照】ALSA 音频 API 使用教程/A Tutorial on Using the ALSA Audio API | Yesterday17's Blog 从 cue_scanner.l 看 CUE Sheet 的词法单元 | Yesterday17's Blog Postman 历史记录导出的解决方案 | Yesterday17's Blog 《恋爱绮谭 不存在的夏天》通关感想 | Yesterday17's Blog [微机实验/TD-PITE] 微机接口综合实验 | Yesterday17's Blog [微机实验/TD-PITE] 键盘扫描及数码管显示实验 | Yesterday17's Blog [微机实验/TD-PITE] 数码管显示实验 | Yesterday17's Blog Airsonic Advanced+Google Drive+Caddy 部署纪实 | Yesterday17's Blog X-NUCA 2020 - hellowasm 题解 | Yesterday17's Blog [微机实验/TD-PITE] 8251 串行接口实验 | Yesterday17's Blog Node.js child_process.fork 与 env 污染 RCE | Yesterday17's Blog EP.01 「夜の向日葵」 | Yesterday17's Blog [微机实验/TD-PITE] 8254 定时/计数器实验+选做实验 | Yesterday17's Blog [JLU CTF/2020] babywasm WriteUp | Yesterday17's Blog PHP 反序列化与经典利用 | Yesterday17's Blog WebAssembly 逆向简述 | Yesterday17's Blog 『彼女、お借りします』一期完结点评 | Yesterday17's Blog [微机实验/TD-PITE] D/A 转换实验+选做实验 | Yesterday17's Blog [微机实验/TD-PITE] A/D 转换实验+选做实验 | Yesterday17's Blog 开源项目申请 JetBrains Open Source License 简单流程 | Yesterday17's Blog 微软拼音与 JetBrains 搜索快捷键冲突的解决方案 | Yesterday17's Blog [微机实验/TD-PITE] 8259 中断优先级实验+选做实验 | Yesterday17's Blog IFTTT 测试(续) | Yesterday17 IFTTT 测试 | Yesterday17's Blog [微机实验/TD-PITE] 存储器扩展实验+选做实验 | Yesterday17's Blog 新版 GCC 针对 -fdump-translation-unit 的替代方案 | Yesterday17's Blog 一次 HSTS 策略配置的排错之旅 | Yesterday17's Blog YukiNative 踩坑记——Windows 的消息队列 | Yesterday17's Blog 我是我自己——论获取 HTTPS 证书时的验证步骤 | Yesterday17's Blog 【设计文档】对 PUG 的大规模设计修订(1.1) | Yesterday17's Blog GS65 折腾记(2)加装固态,分区,Grub2 引导 Manjaro LiveCD | Yesterday17's Blog 「さくら、もゆ。」的空白字体列表——一次逆向问题定位过程实录 | Yesterday17's Blog 『サクラノ詩 -櫻の森の上を舞う-』通关感想 | Yesterday17's Blog 《ATRI -My Dear Moments-》通关感想 | Yesterday17's Blog [工具][VSCode 扩展] AegiKit——方便 Aegisub 使用的工具箱 | Yesterday17's Blog 贝塞尔曲线、字体矢量化与曲线运算 | Yesterday17's Blog NAT 类型初探 | Yesterday17's Blog
GSuite 探索篇(1)使用 Service Account 向 Google Drive 传输文件 | Yesterday17's Blog
Yesterday17 · 2020-07-26 · via Yesterday17's Blog

最近入手了 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 目录,首先我们需要安装依赖:

cd AutoRclone

pip install -r requirements.txt

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

python gen_sa_accounts.py --quick-setup -1

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

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

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

结语

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

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