Облачное хранилище OneDrive достаточно получило широкое распространение благодаря глубокой интеграции с Microsoft Windows, Microsoft Office и другими продуктами Microsoft. Официального клиента OneDrive для Linux не существует, однако вот уже три года на GitHub существует проект пользователя skilion под названием «onedrive», в рамках которого развивается свободный клиент OneDrive.
На текущий момент проект всё ещё содержит ряд ограничений, но уже дорос до возможности практического применения. Об использование OneDrive в Ubuntu 18.04 и пойдёт речь далее.
Пакет onedrive есть в стандартном репозитории Ubuntu, однако там находится версия от сентбря 2017-го года, в то время как с тех пор как минимум исправлен ряд ошибок. Поэтому ставить мы будем версию из git. Для начала установим необходимые для сборки пакеты:
sudo apt-get install ldc libcurl4-openssl-dev libsqlite3-dev
Далее склонируем репозиторий с исходным кодом:
git clone https://github.com/skilion/onedrive.git
Скомпилируем исходный код и установим в директорию «/opt/onedrive»:
cd onedrive make PREFIX=/opt/onedrive DC=ldc2 sudo make PREFIX=/opt/onedrive install
Создадим директорию, которую мы будем синхронизировать с облачным хранилищем:
mkdir -p ~/OneDrive
Создадим файл конфигурации, в котором укажем директорию, которую будем синхронизировать:
mkdir -p ~/.config/onedrive echo sync_dir = "\"${HOME}/OneDrive\"" > ~/.config/onedrive/config
Далее нам нужно получить данные для авторизации нашего сервиса. Для этого запустим его командой:
/opt/onedrive/bin/onedrive
Он отобразит ссылку, которую надо скопировать и вставить в адресную строку браузера. После перехода по ней в браузере необходимо подтвердить доступ сервиса к аккаунту.
После подтверждения доступа будет открыта белая страница. Надо будет скопировать её адрес из адресной строки и вставить его в ответ на запрос сервиса. После этого сервис скачает всё содержимое вашего облачного хранилища.
Время скачивания зависит от объёма данных и скорости вашего соединения. Поэтому если у вас там находится большой объём данных то лучше позаботиться о скорости соединения хотя бы на время первичной настройки.
По умолчанию onedrive запускается, синхронизирует изменения и завершается. Такой режим удобен если у вас не так много изменений или наоборот не хочется тратить трафик на постоянные изменения и просто синхронизировать результат работы с облаком в конце дня.
Если есть необходимость в постоянной синхронизации то следует запускать onedrive в режиме мониторинга (ключ командной строки: -m). Для удобства запуска в этом режиме поставляется юнит systemd. Чтобы включить автозапуск от имени текущего пользователя (при входе в систему) и запустить сервис необходимо выполнить команды:
systemctl --user enable onedrive systemctl --user start onedrive
Чтобы посмотреть лог работы сервиса можно использовать команду:
journalctl --user-unit onedrive -xe
При использовании сервиса стоит помнить про ограничения, накладываемые сервисом на имена файлов. По сути они аналогичны ограничениям в Microsoft Windows: имена регистронезависимые и набор допустимых спецсимволов очень ограничен.
На этом всё. Приятной работы!