1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/rocket049-mysync

Клонировать/Скачать
README.md 6.9 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 06.03.2025 13:44 94bc7e8

mysync — программа односторонней синхронизации

О программе v3.1.1

Устранены побочные эффекты предыдущей версии. Также улучшена клиентская часть, что привело к снижению вычислительной нагрузки.

О программе v3.1.0

Эта версия совместима с v3.0.1. Улучшения включают использование файла _desc.json сервером для хранения MD5 каждого файла.

  • Преимущества: исключение повторных вычислений при каждом синхронизационном процессе, что значительно снижает нагрузку на сервер при наличии больших файлов в директории.
  • Недостаток: если файлы на сервере были изменены вручную, необходимо удалить файл _desc.json, чтобы сервер мог обнаружить изменения файлов.

Краткое описание проекта

Это программа односторонней синхронизации, основанная на шифровании RSA и AES256, которая позволяет синхронизировать данные от клиента к серверу, автоматически пропуская файлы и папки первого уровня, начинающиеся с точки "." или нижнего подчеркивания "_".

Связь между сервером и клиентом осуществляется через безопасное соединение TLS для вызова RPC.

Адрес исходного кода

Скачивание с Baidu Pan

https://pan.baidu.com/s/103cgeSFOmPZFvVZOQYdDPw#### Описание алгоритмов

  • Вначале клиент получает список файлов локальной директории и вычисляет MD5 каждого файла. Затем он отправляет на сервер список файловых путей и соответствующих им MD5.
  • Затем сервер вычисляет MD5 всех своих файлов и сравнивает их с полученными значениями от клиента. На основе сравнения он определяет, какие файлы были изменены, добавлены или удалены. Сервер удаляет те файлы, которые были удалены клиентом, а затем отправляет клиенту список изменённых и новых файлов.
  • В конце клиент отправляет на сервер зашифрованный архив изменённых и новых файлов. Сервер распаковывает этот архив и обновляет содержимое своей директории.#### Архитектура системы Программа состоит из четырёх компонентов:
  1. mysyncd — серверная программа, которую можно запустить с параметрами для изменения порта, используя команду: mysyncd -h.
  2. mysync — клиентская программа.
  3. genca — генерация самоподписанных пар сертификатов TLS (servername-cert.pem, servername-key.pem). Информацию о том, как использовать эту команду, можно получить с помощью: genca -h.
  4. genkey — создание пары ключей RSA2048 (name.pub, name.key). Информацию о том, как использовать эту команду, можно получить с помощью: genkey -k name.

Путь к конфигурационному файлу

  • Для сервера: на Linux это будет HOME/config/mysyncd/; на Windows это будет /path/to/mysyncd/config/mysyncd/
  • Для клиента: в подкаталоге _mysync нужной директории для синхронизации.

Конфигурация сертификата TLS:

  1. Используйте программу genca для создания файлов servername-cert.pem и servername-key.pem.
  2. Сервер: скопируйте файлы servername-cert.pem и servername-key.pem в директорию config/mysyncd/rootcas и переименуйте их в cert.pem и key.pem соответственно.
  3. Клиент: скопируйте файл servername-cert.pem в директорию _mysync и переименуйте его в cert.pem.### Конфигурация сервера mysyncd Скопируйте публичный ключ RSA клиента mykey.pub в директорию config/mysyncd, а затем отредактируйте соответствующий файл конфигурации mykey.json, указав каталог синхронизации. Обратите внимание, что имя файла json должно совпадать с именем файла .pub. Имя mykey можно изменять, чтобы соответствовать конфигурации клиента. По умолчанию адрес привязки равен "6080", который можно изменить с помощью параметров программы mysyncd, используя параметр -host IP:PORT.На сервере можно настроить несколько пар файлов mykey.pub и mykey.json.

Конфигурация клиента mysync

Скопируйте закрытый ключ RSA клиента mykey.key в директорию _mysync, а затем отредактируйте файл конфигурации config.json, указав адрес сервера host, идентификатор key. Идентификатор должен совпадать с именами файлов .pub и .json на сервере, а также с именем локального файла закрытого ключа .key.

Структура директории конфигурации сервера

config/mysyncd/
├── mykey.json
├── mykey.pub
└── rootcas
    ├── cert.pem
    └── key.pem

Структура файлов конфигурации клиента

_mysync/
├── cert.pem
├── config.json
└── mykey.key

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/rocket049-mysync.git
git@api.gitlife.ru:oschina-mirror/rocket049-mysync.git
oschina-mirror
rocket049-mysync
rocket049-mysync
master