Утилита для инкрементального резервного копирования папок с проектами в облачное хранилище Mega. Автоматизирует архивацию изменившихся файлов и их загрузку, поддерживая фильтрацию исключений.
Облачное резервное копирование проектов (Mega Backup Tool)
Данное консольное приложение представляет собой надежное решение для автоматизации резервного копирования рабочих директорий с программным кодом и ассетами. Разработано для сред, где требуется регулярное сохранение изменений без ручного контроля.
Основные функции и алгоритм работы:
Инкрементальный анализ: Приложение сканирует заданные директории (Freelance, Unity, личные проекты) и выявляет только те папки, в которых были изменены файлы с момента последнего запуска.
Интеллектуальная фильтрация: Реализована система исключений на основе черных списков директорий и полных путей (например, автоматически исключаются папки архивов, служебные файлы .suo).
Специфичная поддержка Unity: Для проектов на движке Unity предусмотрен особый режим архивации. Утилита генерирует список файлов на основе содержимого папки Assets и инкрементного файла-манифеста, что позволяет архивировать только релевантные ресурсы, исключая кэш и библиотеки движка.
Многопоточная загрузка: После создания высокосжатого RAR-архива (с использованием WinRAR) данные копируются локально, а затем асинхронно загружаются в облачное хранилище Mega.nz с отображением прогресса операции.
Логирование и идемпотентность: Файл-маркер (date.txt) хранит временную метку последнего успешного бэкапа, гарантируя, что файлы не будут дублироваться.
Технологический стек: C#, .NET Core / .NET Framework, MegaApiClient, WinRAR (CLI), работа с файловой системой и асинхронными операциями.