-
20250803 The Network & Server Update
StableGo Build and Test / build-and-test (push) Successful in 23sreleased this
2025-08-03 11:16:02 +07:00 | 0 commits to main since this releaseЭто первый крупный стабильный релиз нашего инструмента для резервного копирования! Версия 1.0.0 вводит полный пересмотр сетевых возможностей, позволяя вам управлять резервными копиями на нескольких машинах как через централизованный сервер, так и через прямые P2P-соединения.
Главное нововведение — команда
serve, которая превращает утилиту в полноценный HTTP-сервер для бэкапов.✨ Основные моменты
- Новая команда
serve: Запускайте выделенный, персистентный HTTP-сервер для централизованного хранения и управления вашими резервными копиями. - Два сетевых режима: Выбирайте то, что вам нужно:
- HTTP-режим: Используйте
createиrestoreкак клиенты для загрузки и скачивания бэкапов с вашегоserve-инстанса. - P2P-режим: Восстановлена и улучшена возможность прямой потоковой передачи данных от
createкrestoreдля быстрых одноразовых трансферов.
- HTTP-режим: Используйте
- Точные индикаторы выполнения: Исправлена критическая ошибка, из-за которой индикатор выполнения при сетевом восстановлении работал некорректно. Теперь прогресс отображается точно в обоих сетевых режимах.
- Автоматизация CI/CD: Добавлен воркфлоу для Gitea Actions, который автоматически собирает и тестирует приложение при каждом изменении в репозитории.
📝 Полный список изменений
🚀 Добавлено
- Команда
serveдля запуска HTTP-сервера бэкапов с флагами-a(адрес) и-d(директория). - HTTP-клиент в командах
createиrestoreдля взаимодействия с серверомserveпо адресу форматаip:port/filename. - Воркфлоу для Gitea Actions (
.gitea/workflows/build-and-test.yml) для автоматической сборки и тестирования проекта.
🎨 Улучшено
- Восстановлена P2P-функциональность: Возвращена возможность прямой потоковой передачи данных (
create->restore), которая была случайно удалена. Логика была интегрирована в новую, более надежную архитектуру асинхронных команд. - Интеллектуальное распознавание адреса: Приложение теперь автоматически определяет, какой сетевой режим использовать (HTTP или P2P), на основе формата предоставленного адреса.
- Обновлена документация:
README.mdбыл полностью переписан, чтобы подробно описать все три режима работы (локальный, HTTP-сервер и P2P) с понятными примерами. - Рефакторинг кода: Общие компоненты, такие как
progressTracker, были вынесены вcmd/utils.go, чтобы избежать дублирования кода.
🐛 Исправлено
- Индикатор выполнения при сетевом восстановлении: Сервер
serveтеперь отправляет корректный заголовокContent-Length, а клиентrestoreправильно обрабатывает асинхронное обновление состояния, что обеспечивает точное отображение процентов и размера загрузки.
🚀 Быстрый старт с новыми функциями
HTTP-сервер
- На сервере:
./backup serve -a 0.0.0.0:8080 -d /var/backups - На клиенте (загрузка):
./backup create -s ./my-project -t 192.168.1.100:8080/project-backup.tar.gz - На клиенте (скачивание):
./backup restore -s 192.168.1.100:8080/project-backup.tar.gz -t ./restored-project
P2P-режим
- На принимающей машине:
./backup restore -s 0.0.0.0:8080 -t /path/to/restore/location - На отправляющей машине:
./backup create -s ./my-data -t 192.168.1.200:8080
Downloads
- Новая команда