>_ DevTrendspl

Język

Strona główna

Języki

Sekcje

Frontend Backend Mobilne DevOps AI / ML GameDev Blockchain Bezpieczeństwo
JavaScript

Jak nie stracić cyfrowego życia: tworzenie kopii zapasowej konta Google jednym kliknięciem

472 gwiazdki

Wyobraź sobie taką sytuację: budzisz się rano, próbujesz sprawdzić pocztę e-mail, a Google informuje cię, że twoje konto zostało zablokowane. Bez wyjaśnienia. Brzmi jak początek thrillera? Niestety, dla wielu użytkowników stało się to rzeczywistością. W mojej praktyce spotkałem się z licznymi historiami ludzi, którzy stracili dostęp do dziesięciu lat korespondencji, kontaktów i kalendarza tylko z powodu błędu algorytmu bezpieczeństwa lub niefortunnego ciągu zdarzeń.

Oczywiście Google ma usługę Takeout, ale bądźmy szczerzy: korzystanie z niej regularnie jest dość uciążliwe. Jest wolna, niewygodna i wymaga ręcznej interwencji. Właśnie tutaj wkracza projekt node-google-backup, przekształcając proces tworzenia kopii zapasowej w eleganckie zadanie automatyczne.

Co to za narzędzie i dlaczego go potrzebujesz?

node-google-backup to lekkie narzędzie wiersza poleceń napisane w Node.js. Jego jedyne, ale krytycznie ważne zadanie polega na pobieraniu wiadomości e-mail, kontaktów i wydarzeń z kalendarza, zapisując je w standardowych formatach bezpośrednio na dysku twardym lub serwerze.

Co ciekawe, autor projektu, WeeJeWel, stworzył go w odpowiedzi na te właśnie „historie grozy" dotyczące blokowania kont. Główną cechą jest tutaj przyrostowość. Narzędzie nie będzie pobierać wszystkich gigabajtów wiadomości e-mail od zera za każdym razem. „Mądrze" pobiera tylko to, co pojawiło się od ostatniej synchronizacji.

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

Dlaczego jest to wygodne?

Po uruchomieniu kopii zapasowej nie otrzymasz jednego dużego, nieczytelnego archiwum. Narzędzie tworzy przejrzystą strukturę folderów, którą łatwo przeglądać nawet bez specjalnych programów:

  • Kontakty: wszystkie twoje kontakty w formacie .vcf. Każdy smartfon lub klient poczty e-mail je zrozumie.
  • Kalendarz: wydarzenia w formacie .ics.
  • Poczta: tutaj dzieje się prawdziwa magia. Wiadomości e-mail są zapisywane w formacie .eml i organizowane według trzech różnych logik: według identyfikatora, według wątków i według etykiet.

Przy okazji, aby uniknąć zajmowania dodatkowego miejsca, autor użył dowiązań symbolicznych (symlinks). Fizycznie wiadomość e-mail jest przechowywana w folderze By ID, podczas gdy wszystkie pozostałe foldery zawierają tylko linki do niej. To bardzo sprytne rozwiązanie z perspektywy architektury przechowywania danych.

Jak uruchomić kopię zapasową w 2 minuty

Aby rozpocząć, potrzebujesz „hasła aplikacji" Google. To specjalny 16-znakowy kod, który pozwala programom zewnętrznym bezpiecznie łączyć się z twoim kontem bez używania głównego hasła. Możesz go utworzyć w ustawieniach bezpieczeństwa konta Google.

Opcja 1: Przez Node.js (npx)

Jeśli masz zainstalowany Node.js, nie musisz nawet nic pobierać. Po prostu uruchom polecenie:

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

Opcja 2: Przez Docker

Dla entuzjastów konteneryzacji (i dla tych, którzy chcą uruchomić to na serwerze domowym lub NAS) dostępny jest gotowy obraz Docker. To prawdopodobnie najwygodniejszy sposób na skonfigurowanie regularnych kopii zapasowych:

$ 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

Praktyczne przypadki użycia: Jak wykorzystać to w prawdziwym życiu?

  1. Dobry sen: Skonfiguruj cron na serwerze lub Raspberry Pi, aby skrypt uruchamiał się raz w tygodniu. Teraz, niezależnie od tego, co stanie się z Google, twoja korespondencja z ostatnich 10 lat jest zawsze pod ręką.
  2. Migracja: Jeśli zdecydujesz się opuścić ekosystem Google, to narzędzie pomoże ci „wyciągnąć" dane w czystym formacie, gotowym do zaimportowania do innych usług.
  3. Wyszukiwanie lokalne: Format .eml jest dobrze indeksowany przez narzędzia wyszukiwania systemowego, takie jak Spotlight na macOS czy Windows Search. Czasami znalezienie starej wiadomości e-mail w folderze lokalnym jest szybsze niż w interfejsie webowym Gmaila.

Techniczne niuanse

Projekt jest napisany w JavaScript i aktywnie wykorzystuje możliwości protokołów IMAP (do wiadomości e-mail) oraz odpowiednich interfejsów API dla kontaktów i kalendarza. Miło widzieć, że projekt żyje: zgodnie z GitHub, jest regularnie aktualizowany, a obrazy Docker są automatycznie budowane przez GitHub Actions.

Powinieneś tego spróbować? Zdecydowanie tak, jeśli cenisz swoje dane. To jeden z tych przypadków, gdy małe narzędzie rozwiązuje ogromny potencjalny problem. Jak mówią, ludzie dzielą się na dwie kategorie: tych, którzy jeszcze nie tworzą kopii zapasowych, i tych, którzy już to robią. Dzięki node-google-backup możesz przejść do drugiej kategorii w pięć minut.

A jeśli korzystasz również z usług Apple, ten sam autor ma podobny projekt dla iCloud. Ale to już zupełnie inna historia.

Zadbaj o swoje dane!

Powiązane projekty