Как Синхронизировать Бизнес OneDrive / Office 365 на Linux?

Microsoft OneDrive Business/Office 365 Pro предлагает 1 ТБ облачного хранилища, но к сожалению никогда не было метода для синхронизации его на Linux.

24
задан 9 July 2018 в 03:41

4 ответа

В настоящее время экспериментальный onedrive-d является программой с открытым исходным кодом, которая может синхронизировать только персональные учетные записи OneDrive, поскольку он не принимает ссылки Microsoft Sharepoint. Вот метод для синхронизации использования Бизнеса/Office 365 OneDrive GoodSync для Linux, который является бесплатным для персонального использования.

  1. Установите подходящую версию на своей машине Linux, например:

    ./goodsync-linux-x86_64-release.run
    

    Ответ не и для установки Подключения GoodSync и для сети GsServer UI.

  2. Откройте OneDrive в веб-браузере. выберите "Возврат Классику OneDrive" на правильной более низкой стороне.
  3. Веб-адрес в Вашем браузере будет теперь похож: https://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents/Forms/All.aspx и на основе его получают Вашу ссылку синхронизации, которая будет office365://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents.
  4. Создайте новый файл в .goodsync подпапке в Вашем доме:

    gedit ~/.goodsync/jobs.tix
    
  5. Введите следующий код в файле и сохраните его:

    <Job>
    Name = "OneDrive_Sync"
    Side1 = <SideOptions>
    Dir = <Connect>
        Url = "put_your_syncing_link_here"
        UserID = "put_your_OneDrive/Office365_Bussiness_email_here"
    </Connect>
    </SideOptions>
    Side2 = <SideOptions>
    Dir = <Connect>
        Url = "file:///your_home_folder/one_drive_folder"
    </Connect>
    </SideOptions>
    Direction = 0
    ExcludeHidden = No
    ExcludeSystem = No
    DetectMovesAndRenames = Yes
    LinksOption = 1
    ExcludeEmptyFolders = No
    LimitChangesPercent = 100
    AutoResolveConflicts = 3
    DetectMovesAndRenames = Yes
    </Job>
    
  6. Запустите процесс синхронизации:

    gsync sync "OneDrive_Sync"
    
  7. На этом шаге Ваш веб-браузер откроет OneDrive/Office 365 страниц и попросит Вашу авторизацию позволить goodsync получать доступ к Вашей учетной записи. После ввода Вашей синхронизации учетных данных запустится.

Ограничения: Microsoft не позволяет URL-запросы с длиной больше чем 270 символов и так GoodSync CAN НЕ синхронизирующие файлы с долгими путями.

Приятного отдыха!

7
ответ дан 23 November 2019 в 01:21

В то время как оригинал и наиболее часто используемый onedrived инструмент xybu все еще не поддерживает OneDrive для Бизнеса, но только персональный OneDrives. однако, существует ветвление этого проекта на GitHub derrix060, который имеет так или иначе работу (но все еще ошибочный) реализация для Бизнес-клиента.

Предупреждение: Когда Вы используете этот метод, я настоятельно рекомендую всегда проверить, что файлы синхронизировались правильно путем проверки их онлайн в https://www.office.com, и/или использовать мой сценарий обертки, который, как показывают в конце этой страницы, по крайней мере, был информирован о любых ошибках с помощью настольных уведомлений!

Иногда onedrived, кажется, приводит взятие к сбою некоторых изменений или загружает их правильно, покидая Ваш OneDrive в (частично) несинхронизируемом состоянии. Это может также произойти, что это генерирует конфликты слияния с собой по некоторым причинам и переименовывает Ваши файлы локально путем добавления имени хоста в круглых скобках и дополнительно числе. К сожалению, нет никакого уведомления об ошибках, но Вы видите записи в своем файле журнала.

Если это происходит, можно заставить его попытаться синхронизировать соответствующие файлы снова, например, касание их или переименование их или папки, в которой они находятся.

Подсказка: кажется, что onedrived ​ библиотека часто имеет проблемы особенно с файлами, которые были сохранены непосредственно в корне OneDrive. Вероятно, лучше поместить все файлы в подкаталоги вместо того, чтобы вывести их непосредственно в папку OneDrive.

Хотя это звучит глупым, я также заметил, что это, кажется, заставляет меньше проблем загружать файлы через Веб-клиент OneDrive и ожидать, пока они не становятся синхронизируемыми назад с Вашей локальной папкой (который может занять несколько минут хотя), чем создать или копировать/перемещать их локально. Практично ли это или полностью освобождает цель OneDrive, до Вашего собственного решения...

Посмотрите readme файл проекта для инструкций по полной установке, но вот краткое изложение:

Установка

  1. Удостоверьтесь, что у Вас нет никакой другой версии onedrived (или onedrive-d) установленный.

  2. Пакеты зависимости от установки:

    sudo apt install build-essential python3-dev libssl-dev inotify-tools python3-dbus libdbus-1-dev libdbus-glib-1-dev
    
  3. Загрузите последнее ngrok клиент для Linux от официального сайта в https://ngrok.com/download. ngrok-client пакет из репозиториев Ubuntu слишком стар и не отвечает требованиям.
    Распакуйте загруженный ngrok-stable-linux-amd64.zip архив. Это содержит сингл ngrok двоичный файл, который необходимо вставить местоположение на Вашем $PATH, например, в /usr/local/bin/.
    Регистрация к ngrok, вероятно, не необходима.

  4. Установите onedrived Приложение Python3 от использования GitHub pip3:

    sudo -H pip3 install git+https://github.com/derrix060/onedriveClient.git
    
  5. Дополнительно настройте местоположение файла журнала для onedrived, где можно проверить на проблемы, если что-нибудь не должно работать правильно, например:

    onedrived-pref config set logfile_path ~/.config/onedrived/onedrived.log
    

Установка учетной записи и конфигурация дисков

После того, как установка была успешна, необходимо настроить учетную запись и диск (диски):

  1. Добавьте свой OneDrive для Бизнес-учетной записи с помощью интерактивного режима путем выполнения:

    onedrived-pref account add -b
    

    Интерактивный мастер попросит, чтобы Вы дважды открыли ссылку в своем браузере, где необходимо будет открыть доступ приложению с учетной записью Microsoft Business.
    Это попросит, чтобы Вы вставили URL, к которому Вы перенаправляетесь после подтверждения авторизации назад в интерактивный мастер. Сделайте, как сказали и следуйте инструкциям, которые команда дает Вам.

  2. Проверьте аккаунт, был добавлен успешно путем проверки вывода команды ниже. Это должно выглядеть подобным и перечислить учетную запись, с которой Вы зарегистрированы:

    $ onedrived-pref account list
    
    All OneDrive accounts associated with user "YOUR_UBUNTU_USERNAME":
    
      #  Account ID                 Owner Name     Email Address         Profile Type
    ---  -------------------------  -------------  --------------------  --------------
      0  YOUR_PERSONAL_ACCOUNT_ID   YOUR_NAME      YOUR_BUSINESS_EMAIL   Business
    
  3. Настройте свои диски в интерактивном командном режиме путем выполнения:

    onedrived-pref drive set
    

    Вы будете видеть список всех своих дисков и проситься ввести номер строки диска, который Вы хотите добавить к своей локальной конфигурации.
    Затем необходимо указать локальный каталог, который Вы хотите использовать в качестве корневой папки для синхронизации с Вашим диском. Можно просто совершить нападки, Входят, и это будет использовать значение по умолчанию ~/OneDrive. Если путь не будет существовать, то он будет создан. То же самое для пути к проигнорировать файлу, который Вы хотите использовать, можно просто совершить нападки, Входят, и это будет использовать значение по умолчанию ~/.config/onedrived/ignore_v2.txt и создайте его при необходимости.

  4. Проверьте вывод команды ниже для отображения информации обо всех доступных и настроенных дисках. Это должно показать диск, который Вы просто настраиваете с корректными настройками под заголовком Drives that have been set up:

    onedrived-pref drive list
    

Запуск демона

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

onedrived start --debug

Если все хорошо, и команда не отказывает и выходит, пытается поместить некоторые файлы на Вашу локальную папку OneDrive и видит, синхронизируется ли она. Необходимо, вероятно, смочь проверить, что путем посещения веб-приложения OneDrive в https://www.office.com и проверки, добавили ли файлы Вы локально, появляются там.

Можно выйти onedrived обработайте в своем терминале снова путем нажатия Ctrl+C.

Запускаться onedrived обычно, как второстепенный демон, выполняет его с:

onedrived start

Необходимо, вероятно, добавить эту команду к Приложениям Запуска, так, чтобы она автоматически запустила каждый раз, когда Вы входите в систему. См. то, Как я запускаю приложения автоматически на входе в систему? для этого.

Обертка для уведомлений об ошибке

Если Вы хотите получить настольные уведомления каждый раз, когда onedrived регистрирует ошибку (например, отказавшая синхронизация файлов), вот сценарий обертки, который анализирует файл журнала в режиме реального времени, и использование уведомляет - отправляют для отображения их Вам.

Можно запустить сценарий обертки без аргументов (или поместить его в приложения автоматического запуска) вместо onedrived start команда.

#!/bin/bash
LOGFILE=~/.config/onedrived/onedrived.log
ICON_START=weather-overcast
ICON_STOP=weather-few-clouds
ICON_ERROR=weather-severe-alert

onexit () {
    onedrived stop
    notify-send -i "$ICON_STOP" "OneDrive" "Wrapper stopped"
    echo "onedrived-wrapper stopped"
}

trap onexit EXIT

onedrived stop
echo "---" >> "$LOGFILE"

onedrived start || {
    echo "Failed to start onedrived!"
    exit 1
}
notify-send -i "$ICON_START" "OneDrive" "Wrapper started"

echo "Monitoring onedrived.log for error messages..."
tail -n 1 -F --pid="$(pgrep -f "onedrived start")" "$LOGFILE" |
    while read LINE ; do
        echo "$LINE"
        if MESSAGE="$(grep -Pio '(?<=ERROR: ).*' <<< "$LINE")" ; then
            notify-send -i "$ICON_ERROR" "OneDrive Error" "$MESSAGE"
        fi
    done
2
ответ дан 23 November 2019 в 01:21

Ubuntu 18.04 и позже

Существует клиент OneDrive в репозиториях Ubuntu по умолчанию в Ubuntu 18.04 и позже. OneDrive является системой облачного хранилища Microsoft. Этот пакет предоставляет клиенту командной строки, специализирующемуся на синхронизации с облачным хранилищем OneDrive.

Установите его с:

sudo apt install onedrive

На первом показе это просит, чтобы Вы прошли проверку подлинности со ссылкой. После аутентификации можно включить deamon с systemctl --user enable onedrive и затем systemctl --user start onedrive. Дальнейшие объяснения могут быть найдены в странице справочника man onedrive. Это очень легко установить и только занимает приблизительно пять минут.

6
ответ дан 23 November 2019 в 01:21

rclone поддерживает OneDrive для Бизнеса. См. статью How To Mount OneDrive In Linux Using Rclone (Бизнес Поддержек И Личные аккаунты) - Восстающий Блог Linux для использования.

Вот мой пример для установки нового удаленного onedrive1 с rclone 1.48.0 (на Fedora 30):

$ rclone config
2019/10/10 06:35:56 NOTICE: Config file ".config/rclone/rclone.conf" not found - using defaults
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
name> onedrive1
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
⋮
19 / Microsoft OneDrive
   \ "onedrive"
⋮
Storage> 19      
** See help for onedrive backend at: https://rclone.org/onedrive/ **

Microsoft App Client Id
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id> 
Microsoft App Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret> 
Edit advanced config? (y/n)
y) Yes
n) No
y/n> n

Remote config
Use auto config?
 * Say Y if not sure
 * Say N if you are working on a remote or headless machine
y) Yes
n) No
y/n> y
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
Got code
Choose a number from below, or type in an existing value
 1 / OneDrive Personal or Business
   \ "onedrive"
 2 / Root Sharepoint site
   \ "sharepoint"
 3 / Type in driveID
   \ "driveid"
 4 / Type in SiteID
   \ "siteid"
 5 / Search a Sharepoint site
   \ "search"
Your choice> 1
Found 2 drives, please select the one you want to use:
0: OneDrive - Example Inc (business) id=b!gFLg-RRe****-T9B****
1: OneDrive - Example Inc (business) id=b!gFLg-RRe****-T-H****
Chose drive to use:> 1
Found drive 'root' of type 'business', URL: https://example-my.sharepoint.com/personal/myname_example_com/Documents
Is that okay?
y) Yes
n) No
y/n> y
Current remotes:

Name                 Type
====                 ====
onedrive1            onedrive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q

URL 0 диска заканчивается /ElementinnerHTML и не содержит файлы в моем случае.

Затем смонтируйте его на локальном каталоге через командную строку, rclone-браузер или веб-GUI с тех пор v1.49.

0
ответ дан 23 November 2019 в 01:21

Другие вопросы по тегам:

Похожие вопросы: