Zastąpiłem bazę danych mojej aplikacji folderem na Google Drive
Chciałem śledzić postępy muzyczne mojej córki. Co tydzień otrzymuje ona od nauczyciela nagrania audio i notatki. Chciałem móc odsłuchiwać jej sesje ćwiczeń na przestrzeni czasu. Nie chciałem, aby nowe nagrania nadpisywały stare.
Zbudowałem aplikację, aby rozwiązać ten problem. Nie ma ona backendu. Nie ma bazy danych. Kosztuje zero dolarów.
Większość programistów przeocza jedną funkcję w Google Drive. Jest nią historia wersji.
Kiedy przesyłasz nową wersję pliku o tej samej nazwie i ID, Drive zachowuje starą wersję. Pozostaje ona opatrzona znacznikiem czasu i jest dostępna do przeglądania.
Zamiast budować złożoną bazę danych z tabelami i kluczami obcymi, po prostu nadpisuję plik. Drive zajmuje się wersjonowaniem. Moja aplikacja używa dwóch wywołań API, aby wyświetlić historię. Nie napisałem żadnej logiki wersjonowania.
Struktura folderów pełni rolę schematu mojej bazy danych:
• Każda piosenka ma własny folder. • Pliki używają prefiksów takich jak teacher-audio lub student-practice. • Nie używam JSON do opisywania struktury. • Dodanie nowego folderu automatycznie aktualizuje aplikację.
Potrzebowałem również sposobu na tagowanie piosenek. Nie użyłem do tego pliku JSON. Wykorzystałem właściwości metadanych Drive. Można dodawać pary klucz-wartość bezpośrednio do folderu. Dzięki temu wszystko mieści się w jednym wywołaniu API.
Konfiguracja:
• Hosting: GitHub Pages (bezpłatny) • Autoryzacja: Google Identity Services (tylko po stronie klienta) • Przechowywanie: Google Drive • Baza danych: Brak. Modelem jest struktura folderów. • Całkowity koszt: 0 $.
Jedna wskazówka: Drive usuwa stare wersje po 30 dniach. Aby je zachować, należy ustawić flagę keepRevisionForever.
To nie jest produkt publiczny. To osobiste narzędzie dla mojej rodziny.
Celem nie było tylko zaoszczędzenie pieniędzy. Celem było zapewnienie, że za dwa lata będę mógł nacisnąć przycisk i usłyszeć, jak moja córka brzmiała dzisiaj. Architektura umożliwia to bez dodatkowego utrzymania.
Czy używałeś historii wersji lub pola właściwości (properties) w Drive do celów infrastrukturalnych?
Źródło: https://dev.to/vankadn/replaced-my-apps-database-with-my-daughters-google-drive-folder-1455
