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

Поиск аналогичных решений
  • Сервис CloudSync от Bdrive.com требует оплату и установку закрытого кода на локальный компьютер
  • Сервис CloudMounter.net
    • Монтируйте все популярные учетные записи облачных хранилищ как обычные диски и храните свою информацию в безопасности с помощью CloudMounter. В отличие от нативных клиентов Dropbox, Google Drive, MS OneDrive и других провайдеров оно не синхронизирует ваши онлайн-данные, приложение напрямую подключается к облачным серверам, что значительно экономит место на жестком диске вашего компьютера. CloudMounter также шифрует ваши файлы для обеспечения их безопасности.
    • Подключайтесь к облачному хранилищу и экономьте драгоценное место на жестком диске. CloudMounter — это надежный менеджер облачного хранилища, который позволяет пользователям обрабатывать и упорядочивать все файлы, хранящиеся в Интернете. Он объединяет документы, фотографии, видео, приложения, хранящиеся в различных облачных сервисах, таких как Google Drive, OneDrive, Amazon S3 и многих других. Смонтируйте все эти учетные записи как локальные диски на вашем компьютере Mac или Windows и легко выполняйте любые необходимые действия. Приложение предлагает интеграцию Finder и Keychain для пользователей Mac, и все данные можно просматривать в проводнике, если вы используете Windows. Вы будете управлять несколькими учетными записями облачного хранилища для мгновенного доступа ко всем вашим данным и эффективного рабочего процесса. Загрузите это решение для Windows и Mac, чтобы получить полный контроль над своими данными, где бы они ни хранились.
  • Утилита rsync - синхронизирует данные только между физическими носителями информации
  • Microsoft DFS-R - синхронизирует серверы с ОС Windows Server, включённые в домены одного леса MS AD DS.
  • iCloud Drive - синхронизирует для заданной учётной записи Apple Id папку %USERPROFILE%\iCloudDrive с облаком Apple iCloud
  • Microsoft OneDrive - синхронизирует для заданной учётной записи Microsoft заданную папку на компьютере с облаком Microsoft OneDrive
  • Google Drive - синхронизирует для заданной учётной записи Google заданную папку на компьютере с облаком Google
  • Яндекс.Диск - синхронизирует выбранные папки на компьютере с облаком Яндекс.Диск
Математическая постановка задачи

Имеем множество ПарыОблаков пар вида (Источник, Приёмник). Для каждой пары из множества ПарыОблаков нужно провести процедуру синхронизации пары. Каждый Источник и Приёмник представляет собой множество - дерево из каталогов и файлов с атрибутами. Нам нужно обойти каждое дерево и оптимальным образом, за наименьшее возможное время, найти разницу между множествами. После этого нужно добавить или заменить в Приёмнике все каталоги и файлы из Источника, которых нет в Приёмнике, затем удалить на Приёмнике все файлы, которых нет в Источнике.

CloudPairs = { (Source, Receiver) }, где

  • Source = { (file) }, множество файлов в источнике
  • Receiver = { (file) }, множество файлов в приёмнике. 

file = { (path, size, date created, date modified, owner) }, где

  • path - полный путь к файлу от корня
  • size - размер файла,
  • date created - дата и время создания файла,
  • date modified - дата и время изменения файла,
  • owner - владелец файла
Идеи по оптимизации

1. Если каталога из исходного дерева нет в приёмнике - скопировать весь каталог с содержимым, не обходя поддерево в источнике.
2. Если файл в источнике и файлы приёмнике имеет одинаковый путь, но разные размер, дату создания или дату изменения - заменить файл в Приёмнике на файл из Источника.
3. Для каждого файла вычислять хэш-значение, сравнивать файлы по нему.
4. Хранить в базе данных историю обхода дерева источника и приёмника, журнал операций для создания отчётов пользователю.

Идеи по обеспечению безопасности сервиса. 

1. Администратор сервиса не должен иметь технической возможности получения доступа к данным пользователя для аутентификации пользователя в облачном сервисе и/или данным в файлах пользователя.
2. Сервис должен иметь возможность использовать актуальные российские алгоритмы для шифрования и/или электронной подписи данных в облаке.

Программа находится в стадии проектирования.

Источники (в порядке даты публикации)
Добавить комментарий