В настоящее время нет бесплатного сервиса с открытым исходным кодом, который позволяет синхронизировать несколько облачных хранилищ пользователя без загрузки файлов исходных хранилищ на локальный компьютер. Требуется создать сервис, выполняющий решение задачи.
Поиск аналогичных решений
- Сервис 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. Сервис должен иметь возможность использовать актуальные российские алгоритмы для шифрования и/или электронной подписи данных в облаке.
Программа находится в стадии проектирования.