KXκωνσταντίνος.χαφής
Επεκτάσεις & ΕργαλείαΣυντηρείται2025Επιλεγμένα

Google Drive Auto Backup

TypeScriptgoogleapisOAuth2micromatch

Επισκόπηση

Το backup ενός φακέλου στο Google Drive θα έπρεπε να είναι diff, όχι επαναφόρτωση. Αυτό το CLI υλοποιεί σταδιακά backups με εξαιρέσεις αρχείων και φακέλων, διατηρώντας την απομακρυσμένη/τοπική δομή και παραλείποντας εντελώς τα αμετάβλητα αρχεία.

Τι έφτιαξα

Ο πυρήνας είναι ένα δέντρο FileNode στη μνήμη, χτισμένο από το τοπικό σύστημα αρχείων και αντιπαραβαλλόμενο με το Drive. Η επίλυση συγκρούσεων ανιχνεύει μετακινήσεις αντί για διαγραφή-και-επαναφόρτωση: ένα κατώφλι συχνότητας μετακίνησης 0,6 αποφασίζει αν ένας φάκελος Drive είναι ο ίδιος που μετακινήθηκε. Οι χρόνοι τροποποίησης οδηγούν την ανίχνευση αλλαγών, και τα IDs φακέλων/αρχείων αποθηκεύονται στο backupFile.json ώστε τα αμετάβλητα αρχεία να μην επαναφορτώνονται ποτέ.

Οι εξαιρέσεις είναι μοτίβα glob κλειδωμένα σε απόλυτη διαδρομή ή σε παγκόσμιο *, αποκομμένα από το δέντρο με micromatch. Τα uploads τρέχουν παράλληλα με όριο ταχύτητας, οι τύποι MIME προέρχονται από bundled αντιστοίχιση, και το CLI προσφέρει καθαρή έξοδο προόδου (cli-progress). Ένα setup.bat συνδέει τα backups στον Windows Task Scheduler σε ρυθμό ΩΡΙΑΙΑ/ΗΜΕΡΗΣΙΑ/ΕΒΔΟΜΑΔΙΑΙΑ/ΜΗΝΙΑΙΑ, και μια λειτουργία λήψης επαναφέρει την απομακρυσμένη κατάσταση.

Τεχνικά highlights

Αποτέλεσμα

Τρέχει χωρίς επίβλεψη σε πρόγραμμα· η λογική diffing σημαίνει ότι μόνο πραγματικές αλλαγές φτάνουν στο API.