>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 安全
JavaScript

如何不丢失你的数字生活:一键 Google 账户备份

472 星标

想象这样一个场景:你早上醒来,想查看邮件,Google 却告诉你账户已被封禁。没有给出任何解释。听起来像惊悚片的开头?不幸的是,对许多用户来说,这已经成为了现实。在我的实践中,我遇到过很多故事——人们仅仅因为安全算法错误或一连串不幸的事件,就失去了十年来的通讯记录、联系人和日历。

当然,Google 有 Takeout 服务,但说实话:定期使用它相当麻烦。它速度慢、不方便,而且需要手动操作。这就是 node-google-backup 项目的用武之地,它将备份过程变成一个优雅的自动化任务。

这个工具是什么,为什么你需要它?

node-google-backup 是一个用 Node.js 编写的轻量级命令行工具。它的唯一但至关重要的任务是下载你的邮件、联系人和日历事件,以标准格式直接保存到你的硬盘或服务器上。

有趣的是,项目作者 WeeJeWel 创建它是为了回应那些账户被封禁的"恐怖故事"。这里的主要特点是增量功能。该工具不会每次都从头开始下载所有 GB 级别的邮件。它会"智能地"只下载自上次同步以来的新增内容。

NPM Version Sponsor Build & Publish NPM Package Build & Publish Docker Image

为什么这很方便?

当你运行备份时,你不会得到一个巨大的不可读归档文件。该工具会创建一个整洁的文件夹结构,即使没有特殊程序也很容易浏览:

  • 联系人:所有联系人以 .vcf 格式保存。任何智能手机或邮件客户端都能识别它们。
  • 日历:事件以 .ics 格式保存。
  • 邮件:真正的魔法在这里。邮件以 .eml 格式保存,并按三种不同的逻辑组织:按 ID、按会话线程和按标签。

顺便说一句,为了避免占用额外空间,作者使用了符号链接(symlinks)。实际上,邮件存储在 By ID 文件夹中,而所有其他文件夹只包含指向它的链接。从存储架构角度来看,这是一个非常聪明的解决方案。

如何在 2 分钟内运行备份

要开始使用,你需要 Google 的"应用密码"。这是一个特殊的 16 字符代码,允许第三方程序安全地连接到你的账户,而无需使用你的主密码。你可以在 Google 账户的安全设置中创建一个。

方式 1:通过 Node.js (npx)

如果你已安装 Node.js,甚至不需要下载任何东西。只需运行命令:

$ npx -y google-backup \
  --username "[email protected]" \
  --password "ваш-пароль-приложения" \
  --filepath "~/Backups/Google/"

方式 2:通过 Docker

对于容器化爱好者(以及那些想在家用服务器或 NAS 上运行的人来说),有一个现成的 Docker 镜像。这可能是设置定期备份最方便的方式:

$ docker run \
  --env GOOGLE_BACKUP_USERNAME="[email protected]" \
  --env GOOGLE_BACKUP_PASSWORD="ваш-пароль-приложения" \
  --env GOOGLE_BACKUP_FILEPATH="/backups" \
  --env GOOGLE_BACKUP_SERVICES="mail,calendar,contacts" \
  --volume="~/Backups/Google/:/backups/" \
  ghcr.io/weejewel/google-backup

实际用例:如何在现实生活中使用?

  1. 安心睡眠:在服务器或树莓派上设置 cron,让脚本每周运行一次。现在,无论 Google 发生什么,你最近十年的通讯记录始终触手可及。
  2. 数据迁移:如果你决定离开 Google 生态系统,这个工具可以帮助你以干净的格式"提取"数据,准备好导入到其他服务。
  3. 本地搜索.eml 格式能被 macOS 的 Spotlight 或 Windows Search 等系统搜索工具很好地索引。有时候在本地文件夹中找一封旧邮件比在 Gmail 网页界面上更快。

技术细节

该项目用 JavaScript 编写,并积极利用 IMAP 协议(用于邮件)以及相应的联系人 API 和日历 API。很高兴看到这个项目仍然活跃:据 GitHub 显示,它定期更新,Docker 镜像通过 GitHub Actions 自动构建。

你应该试试吗?绝对应该,如果你重视你的数据的话。这正是那种小工具解决大潜在问题的案例。正如人们常说的,人分为两类:还没备份的人,和已经在备份的人。有了 node-google-backup,你可以在五分钟内进入第二类。

如果你还使用 Apple 服务,同一个作者有一个类似的 iCloud 项目。但那就是另一个故事了。

好好保护你的数据!

相关项目