CloudCross - это свободная программа для синхронизации локальных файлов и папок с различными облачными хранилищами.
На данный момент, пока, поддерживается работа с OneDrive, Яндекс.Диск,Google Drive, Облако Mail.ru и Dropbox. Программа написана на чистом Qt, без каких либо сторонних библиотек.
CloudCross работает с Qt версии 5 и выше. Версии Qt 4.x не поддерживаются.

Возможности программы:

  • работа с несколькими провайдерами облачных услуг. (Google, Dropbox, Yandex, Mail.ru, OneDrive)
  • двунаправленая конвертация документов в формате MS Office или Open Office, в формат Google Docs.
  • sсинхронизация с использованием черных и белых списков (файлы .exclude и .include)
  • возможность указания, какое хранилище локальное или уделенное имеет приоритет при синхронизации.
  • возможность принудительной загрузки или выгрузки файлов.
  • возможность прямой загрузки файла в облако по ссылке на скачивание.
  • возможность работы с http и socks5 прокси серверами.

Установка

Установка из исходных кодов

Для установки на deb-based дистрибутивы (Debian,Ubuntu,Linux Mint)
sudo apt-get install build-essential qt5-default qtbase5-dev qt5-qmake
Для установки на rpm-based дистрибутивы (Redhat,CentOS, Fedora, Alt Linux):
yum groupinstall 'Development Tools'
yum install qt5-qtbase qt5-qtbase-devel qt-devel
Для установки на Arch Linux:
pacman -S base-devel qt5-base
Сборка программы состоит из нескольких простых шагов:
  • Скачайте архив.
  • Распакуйте его.
  • Перейдите в распакованую папку.
mkdir build
cd build
qmake ../CloudCross.pro
make
В результате в папке build появится файл ccross

Скачать

Install package home:MasterSoft24 / cloudcross

Select Your Operating System

Arch

Arch

CentOS

CentOS

Debian

Debian

Fedora

Fedora

openSUSE

openSUSE

Ubuntu

Ubuntu

Add repository and install manually

For xUbuntu 17.04 run the following:

sudo sh -c "
echo 'deb http://download.opensuse.org/repositories/home:/MasterSoft24/xUbuntu_17.04/ /' > /etc/apt/sources.list.d/cloudcross.list" sudo 
apt-get update sudo 
apt-get install cloudcross

You can add the repository key to apt. Keep in mind that the owner of the key may distribute updates, packages and repositories that your system will trust (more information). To add the key, run:

wget -nv http://download.opensuse.org/repositories/home:MasterSoft24/xUbuntu_17.04/Release.key -O Release.key sudo apt-key add - < Release.key sudo 
apt-get update

For xUbuntu 16.10 run the following:

sudo sh -c "
echo 'deb http://download.opensuse.org/repositories/home:/MasterSoft24/xUbuntu_16.10/ /' > /etc/apt/sources.list.d/cloudcross.list" sudo 
apt-get update sudo 
apt-get install cloudcross

You can add the repository key to apt. Keep in mind that the owner of the key may distribute updates, packages and repositories that your system will trust (more information). To add the key, run:

wget -nv http://download.opensuse.org/repositories/home:MasterSoft24/xUbuntu_16.10/Release.key -O Release.key sudo apt-key add - < Release.key sudo 
apt-get update

For xUbuntu 16.04 run the following:

sudo sh -c "
echo 'deb http://download.opensuse.org/repositories/home:/MasterSoft24/xUbuntu_16.04/ /' > /etc/apt/sources.list.d/cloudcross.list" sudo 
apt-get update sudo 
apt-get install cloudcross

You can add the repository key to apt. Keep in mind that the owner of the key may distribute updates, packages and repositories that your system will trust (more information). To add the key, run:

wget -nv http://download.opensuse.org/repositories/home:MasterSoft24/xUbuntu_16.04/Release.key -O Release.key sudo apt-key add - < Release.key sudo 
apt-get update

For xUbuntu 14.04 run the following:

sudo sh -c "
echo 'deb http://download.opensuse.org/repositories/home:/MasterSoft24/xUbuntu_14.04/ /' > /etc/apt/sources.list.d/cloudcross.list" sudo 
apt-get update sudo 
apt-get install cloudcross

You can add the repository key to apt. Keep in mind that the owner of the key may distribute updates, packages and repositories that your system will trust (more information). To add the key, run:

wget -nv http://download.opensuse.org/repositories/home:MasterSoft24/xUbuntu_14.04/Release.key -O Release.key sudo apt-key add - < Release.key sudo 
apt-get update

For openSUSE Tumbleweed run the following as root:

zypper addrepo http://download.opensuse.org/repositories/home:MasterSoft24/openSUSE_Tumbleweed/home:MasterSoft24.repo 
zypper refresh 
zypper install cloudcross

For openSUSE Leap 42.2 run the following as root:

zypper addrepo http://download.opensuse.org/repositories/home:MasterSoft24/openSUSE_Leap_42.2/home:MasterSoft24.repo 
zypper refresh 
zypper install cloudcross

For openSUSE Leap 42.1 run the following as root:

zypper addrepo http://download.opensuse.org/repositories/home:MasterSoft24/openSUSE_Leap_42.1/home:MasterSoft24.repo 
zypper refresh 
zypper install cloudcross

For Fedora 26 run the following as root:

dnf config-manager --add-repo http://download.opensuse.org/repositories/home:MasterSoft24/Fedora_26/home:MasterSoft24.repo 
dnf install cloudcross

For Fedora 25 run the following as root:

dnf config-manager --add-repo http://download.opensuse.org/repositories/home:MasterSoft24/Fedora_25/home:MasterSoft24.repo 
dnf install cloudcross

For Fedora 24 run the following as root:

dnf config-manager --add-repo http://download.opensuse.org/repositories/home:MasterSoft24/Fedora_24/home:MasterSoft24.repo 
dnf install cloudcross

For Fedora 23 run the following as root:

dnf config-manager --add-repo http://download.opensuse.org/repositories/home:MasterSoft24/Fedora_23/home:MasterSoft24.repo 
dnf install cloudcross

For Debian 9.0 run the following as root:

echo 'deb http://download.opensuse.org/repositories/home:/MasterSoft24/Debian_9.0/ /' > /etc/apt/sources.list.d/cloudcross.list  
apt-get update 
apt-get install cloudcross

You can add the repository key to apt. Keep in mind that the owner of the key may distribute updates, packages and repositories that your system will trust (more information). To add the key, run:

wget -nv http://download.opensuse.org/repositories/home:MasterSoft24/Debian_9.0/Release.key -O Release.key apt-key add - < Release.key 
apt-get update

For Debian 8.0 run the following as root:

echo 'deb http://download.opensuse.org/repositories/home:/MasterSoft24/Debian_8.0/ /' > /etc/apt/sources.list.d/cloudcross.list  
apt-get update 
apt-get install cloudcross

You can add the repository key to apt. Keep in mind that the owner of the key may distribute updates, packages and repositories that your system will trust (more information). To add the key, run:

wget -nv http://download.opensuse.org/repositories/home:MasterSoft24/Debian_8.0/Release.key -O Release.key apt-key add - < Release.key 
apt-get update

For CentOS 7 run the following as root:

cd /etc/
yum.repos.d/ 
wget http://download.opensuse.org/repositories/home:MasterSoft24/CentOS_7/home:MasterSoft24.repo 
yum install cloudcross

For Arch Linux, edit /etc/ pacman.conf and add the following (note that the order of repositories in pacman.conf is important, since pacman always downloads the first found package):

[home_MasterSoft24_Arch_Extra] 
SigLevel = Never 
Server = http://download.opensuse.org/repositories/home:/MasterSoft24/Arch_Extra/$arch 

Then run the following as root

pacman -Syu 
pacman -S home_MasterSoft24_Arch_Extra/cloudcross

For Arch Linux, edit /etc/ pacman.conf and add the following (note that the order of repositories in pacman.conf is important, since pacman always downloads the first found package):

[home_MasterSoft24_Arch_Core] 
SigLevel = Never 
Server = http://download.opensuse.org/repositories/home:/MasterSoft24/Arch_Core/$arch 

Then run the following as root

pacman -Syu 
pacman -S home_MasterSoft24_Arch_Core/cloudcross

Grab binary packages directly

Packages for xUbuntu 17.04:
Packages for xUbuntu 16.10:
Packages for xUbuntu 16.04:
Packages for xUbuntu 14.04:
Packages for openSUSE Tumbleweed:
Packages for openSUSE Leap 42.2:
Packages for openSUSE Leap 42.1:
Packages for Fedora 26:
Packages for Fedora 25:
Packages for Fedora 24:
Packages for Fedora 23:
Packages for Debian 9.0:
Packages for Debian 8.0:
Packages for CentOS 7:
Packages for Arch Extra:
Packages for Arch Core:


Или посетить нашу страницу на GitHub и скачать последнюю ревизию CloudCross.

Обратная связь

Вы можете связаться с нами написав на info@mastersoft24.ru или mastersoft24@yandex.ru
Вопросы и предложения по работе программы мы можем обсудить на странице проекта на GitHub.
Так же, вы можете присоедениться к группе проекта на Facebook

Как использовать

Аутентификация

Для начале работы CloudCross необходимо пройти аутентификацию на вашем аккаунте в облаке (Google drive, Dropbox, Яндекс Диск или любом из поддерживаемых провайдеров), чтобы разрешить приложению использовать его. Для этого запустите CloudCross с параметром -a (для указания провайдера используйте опцию --provider PROVIDER_NAME)
ccross -a
или, например для Dropbox
ccross -a --provider dropbox
В ответ приложение вернет что то типа этого
-------------------------------------
Please go to this URL and confirm application credentials

https://accounts.google.com//ServiceLogin?passive=1209600&continue=https://accounts.google.com/o/oauth2/v2/auth?access_type%3Doffline%26approval_prompt%3Dforce%26scope%3Dhttps://www.googleapis.com/auth/drive%2Bhttps://www.googleapis.com/auth/userinfo.email%2Bhttps://www.googleapis.com/auth/userinfo.profile%2Bhttps://docs.google.com/feeds/%2Bhttps://docs.googleusercontent.com/%2Bhttps://spreadsheets.google.com/feeds/%26response_type%3Dcode%26redirect_uri%3Durn:ietf:wg:oauth:2.0:oob%26state%3D1%26client_id%3D8344155748-oq0p2m5dro2bvh3bu0o5bp19ok3qrs3f.apps.googleusercontent.com%26hl%3Dru%26from_login%3D1%26as%3D4ee15e216c8734fd<mpl=nosignup&oauth=1&sarp=1&scc=1
Скопируйте url в адресную строку браузера и перейдите по ссылке. Далее введите свой пароль и нажмите кнопку "Разрешить". В результате код доступа будет передан в приложение. Если все прошло успешно приложение сообщит об этом.

Внимание: .
Для аутентификации на Облаке MAIL.RU вы должны использовать опции --login and --password. В этом случае процесс аутентификации выглядит так:
ccross -a --provider mailru --login your_login --password=your_password
Теперь CloudCross готов к работе.

Synchronization

Для запуска синхронизации достаточно запустить программу
ccross
Обратите внимание! Если вы запускаете синхронизацию в пустой папке, не забудьте поставить параметр prefer=remote
Либо, начиная с версии 1.0.4, вы можете использовать опцию --force.
Но CloudCross позволяет настраивать процесс сихронизации. Для этого используются дополнительные параметры.

Список параметров

Параметры синхронизации

--no-hidden не синхронизировать скрытые файлы и папки
--dry-run определить, какие файлы будут загружены/выгружены, но реально не выполнять синхронизацию
--prefer arg установить стратегию синронизации. Какие файлы имеют приоритет - локальные или удаленные. Может принимать значения "local" и "remote".
--use-include использовать файл .include со списком файлов, которые будут участвовать в синхронизации.
--path arg абсолютный путь к синхронизируемой директории.
--no-new-rev не создавать на сервере новую версию файла, а перезаписать последнюю.
--convert-doc конвертировать документы в процессе синхронизации из формата
MS Office/Open Office в формат Google Docs и обратно
--force arg Принудительно выгрузить или загрузить файлы. Может принимать значения "upload" или "download".
Эта опция отменяет действие опции --prefer.
--provider arg Указать провайдера. Может быть "yandex", "google" либо "dropbox".
Значение по умолчанию - "google"
--direct-upload url remote_path Прямая загрузка файла в облако по ссылке на скачивание.
Все опции, за исключением --provider и --path, игнорируются.
Загруженый файл будет сохранен в облаке по пути, указаному в параметре remote_path.
--login your_login Устанавливает логин для доступа к облаку.
Сейчас используется толко для Cloud Mail.ru
--password your_password Устанавливает пароль для доступа к облаку.
Сейчас используется толко для Cloud Mail.ru
--http-proxy arg Использовать http прокси сервер для доступа к облаку.
arg должен быть в виде ip_address_or_host_name:port_number
--socks5-proxy arg Использовать socks5 прокси сервер для доступа к облаку.
arg должен быть в виде ip_address_or_host_name:port_number

Прочие параметры

--help вывод краткой справки.
--version вывод версии программы
--list вывод списка файлов на Google Drive. Можно использовать для создания списков файлов .include и .exclude
--auth аутентификация в облачном сервисе.
--cloud-space Показывает общий/занятый размер в облаке.

Приоритет файлов

По умолчанию, CloudCross работает в режиме приоритета локальных файлов. Это означает, что если вы удалите файл в облаке, то при следующей синхронизации этот файл будет опять загружен в облако. А если удалить файл на компьютере, то он будет удален и на удаленном сервере.
В режиме приоритета удаленных файлов, поведение прямо противоположное.

Списки .include и .exclude

Если не указан параметр --use-include, CloudCross пытается найти файл .exclude и если находит то использует его при синхронизации. Список в файле .exclude является, по сути, черным списком. И все файлы указаные в нем не будут участвовать в синхронизации.
.Файл .include, напротив, является белым списком. И в синхронизации будут участвовать только файлы перечисленые в нем.
Формат файлов .include и .exclude чрезвычайно прост. Это просто список относительных путей файлов и папок.
Пример можно посмотреть если запустить:
ccross --list
В путях, также, возможно использовать wildcard.

Управление версиями файлов на сервере

По умолчанию, Google Drive создает новую версию для каждого загруженого файла, сохраняя при этом предыдущую.
Все эти версии хранятся на сервере какое то время, занимая свободное пространство.
Но это поведение можно изменить, если при синхронизации использовать параметр --no-new-rev.
При этом при загрузке файла на сервер, новой версии создано не будет, а будет перезаписана последняя версия этого файла.
Эта опция работает только с сервисом Google Drive.

Преобразование форматов файлов

CloudCross предоставляет возможность преобразования файлов, при загрузке на Google Drive, из форматов Microsoft Office или Open/Libre Office в формат Google Docs, что позволяет продолжать работу с ними в онлайне.
Затем, при очередной синхронизации эти файлы будут преобразованы обратно, в соответствующие форматы.
Поддерживаются форматы текстовых документов, электронных таблиц и презентаций.

Но, используя эту возможность, надо помнить следующее - преобразование из форматов Google Docs в форматы Office происходит таким образом, что каждый раз получаются файлы имеющие разную контрольную сумму, при неизменном исходном файле.
Такая особенность, и тот факт, что после загрузки на сервер файл имеет время последнего изменения больше чем время у локального файла, приводят к тому, что при следующей синхронизации программа посчитает файл на сервере более новым, по сравнению с локальной версией, и скачает его.
Анологичная ситуация получится и на локальной стороне. Все это приведет к тому, что файл будет при каждой сихронизации загружаться/выгружаться, не смотря на то, что он остается неизменным. Но на целостность и синхронность информации это не повлияет.

Возможно, в последующих версиях эта особенность будет, каким либо образом, скорректирована.
Эта опция работает только с сервисом Google Drive.

Выбор провайдера

Начиная с версии 1.1.0 вы можете выбирать облачный сервис, с которым собираетесь работать. Для выбора сервиса используется опция
--provider.
. Список доступных провайдеров вы можете посмотреть в описании опции.

Прямая загрузка файлов в облако

CloudCross позволяет осуществлять прямую загрузку файла в облако из заданого URL. Для использования этой возможности, используйте опцию --direct-upload. Все опции, кроме --provider and --path, игнорируются.
Эта опция требует два параметра
URL - прямая ссылка на скачивание файла. Ссылки которые ведут на страницы, с которых происходит редирект на скачивание (например ссылки на расшареные файлы Яндекс.Диска), пока не поддерживаются.
PATH - путь в облаке, по которому будет сохранен скачаный файл. Например /Downloads/Arhives/somefile.zip или /install.exe. Имя под которым будет сохранен файл вы задаете сами.
 
История изменений:
v1.4.0 Добавлена поддержка OneDrive
Добавлена возможность просмотра свободного/занятого объема в облаке.
v1.3.1 Исправлены некоторые ошибки возникающие при работе с Mail.Ru.
Исключена необходимость указывать логин и пароль для каждой операции с Mail.Ru. Теперь это необходимо только при аутентификации.
v1.3.0 Добавлена поддержка облака Mail.ru.
Добавлены опции для использования прокси-серверов(--http-proxy и --socks5-proxy)
v1.2.4 Изменен старый механизм аутентификации на аутентификацию с использованием редиректа на локалхост.
Добавлен сбор статистики.
Изменена лицензия на BSD.
v1.2.3 Изменен путь для OAuth2 авторизации в Google Drive.
Изменен агоритм генерации случайных последовательностей.
Небольшой рефакторинг и косметические изменения.
v1.2.2 Реализована возможность сборки и работы под Windows.
Исправлена ошибка сборки на некоторый системах, связаная с неявным преобразованием из char* в QString в методе QJsonValue::insert().
Исправлен код генерирующий предупреждения при сборке.
Исправлена работа с токеном Google Drive без ограничения по времени жизни.
v1.2.1 Добавлена опция --direct-upload, позволяющая загружать файлы в облако по прямой ссылке
v1.2.0 Добавлена поддержка сервиса Яндекс.Диск
v1.1.0 Добавлена поддержка сервиса Dropbox
Скорректирована работа опции --force​
v1.0.4 Добавлена опция --force для принудительного скачивания или выгрузки файлов и папок.
v1.0.3 Улучшена обработка списков .include и .exclude
v1.0.2 Добавлена опция --no-new-rev для управления версионированием файлов на сервере
Добавлена опция --convert-doc для автоматической конвертации файлов из формата офиса (MS/Open) в формат Google Doc и обратно.
v1.0.1-rc3 исправлена ошибка превышения количества потоков на процесс
испрвлена ошибка с повреждением скачиваемых файлов
v1.0.1-rc2 исправление ошибок
v1.0.1-rc1 первый предварительный релиз CloudCross