Как синхронизировать OneDrive Business (Office 365) в Linux (Ubuntu)?
Я попробовал решение, предложенное Sayed Metwaly ( Как синхронизировать OneDrive Business /Office 365 в Linux?), Но я получил следующее сообщение об ошибке:
=== Job === OneDrive_Sync: 'office365://xxxxxxxxx-my.sharepoint.com/personal/xxxxxx_oasis_xxxxxxxxx_be/Documents' <-> 'file:///home/xxxxxx/Onedrive'
142724 L: No file system for office365://xxxxxxxxx-my.sharepoint.com/personal/xxxxxx_oasis_xxxxxxxxx_be/Documents
File system at office365://xxxxxxxxx-my.sharepoint.com/personal/xxxxxx_oasis_xxxxxxxxx_be/Documents has been replaced by New OneDrive V2 API.
Click Browse button to Re-Browse to your OneDrive sync folder, as New OneDrive requires browser-based authentication (OAuth2)
Есть идеи, что я сделал не так? Спасибо
3 ответа
Вот что я сделал, чтобы заставить его работать очень быстро:
- Использовал компьютер с Windows для настройки синхронизации с использованием версии Goodsync для Windows. Это включает в себя настройку (на основе браузера) авторизации с Office 365.
- Использовал опцию "Экспорт" в версии Goodsync для Windows, чтобы создать
jobs.tix
файл. - Создано
~/.goodsync
папка на машине Linux. - Разместил
jobs.tix
файл в этой папке. - Это НОВЫЙ ШАГ, который я должен был открыть самостоятельно:
jobs.tix
подать вjobs-groups-options.tix
- это позволило использовать всю конфигурацию. - Применены следующие изменения, как показано
diff
вывод из оригинальной виндыjobs.tix
файл:$ diff ~ / Downloads / jobs.tix ~ /.goodsync / jobs-groups-options.tix 51c51
кудаUrl = "file:///home/tomh/onedrive" 54c54 Url = "file:///home/tomh/onedrive" 68c68 <} Закладки = {} TimeStamp = 013061702176 --- >} Закладки = { } TimeStamp = 013061705503 84c84 Url = "file:///home/tomh/onedrive" 87c87 AcctUrl = "file:/// home / tomh / onedrive" tomh-a
мое имя пользователя Windows,od
была моя локальная папка Windows OneDrive,tomh
мое имя пользователя в Linux, иonedrive
моя локальная папка Linux OneDrive Вы можете смело игнорироватьTimeStamp
линии, я просто оставил их для полноты. Обратите внимание, что этоdiff
выходные данные не были обработаны или изменены каким-либо образом, за исключением замены определенных символов соответствующими объектами HTML. Так что да, вы все теперь знаете мои имена пользователей Windows и Linux и папки синхронизации OneDrive. Не вижу, как это ставит под угрозу мою безопасность, и это увеличивает шансы, что это без опечаток. - Одна непонятная вещь, которую я изменил, заставила ее работать: вы найдете эти две строки в файле:
Side2 =
Я изменил вторую строку следующим образом:Conn = Side2 =
и он сразу начал работать.Dir =
Отказ от ответственности: после запуска синхронизации (следующий шаг) Goodsync изменил строку наConn = <Connect>
, Так что я могу ошибаться. Может быть, я мог бы оставить все как есть (и снова). Но это последнее изменение, которое я сделал, прежде чем оно начало работать. Вполне возможно, что я изменил что-то еще в то же время, что заставило это работать. Но, по крайней мере, внесение этого изменения не сломало его для меня:) - Запустите синхронизацию с
Синхронизация gsync "Onedrive"
заменив "Onedrive" на все, что появляется в строках, которые выглядят следующим образом:Работа = {<Работа> Name = "Onedrive"
Я считаю, что требование API v2.0 для использования OAuth сделало невозможным просто взять чужое jobs-groups-options.tix
файл и заставить его работать на себя, просто используя Linux. То есть до тех пор, пока они не решат сделать версию GUI для Linux - или хотя бы добавить код OAuth, который запускает ваш браузер, чтобы установить авторизацию.
Я столкнулся с той же проблемой сегодня. В итоге для меня сработало скачивание и использование графического интерфейса GoodSync на компьютере с Windows и перенос окончательной конфигурации на мой компьютер с Linux.
В Windows я настроил свой Business OneDrive, следуя этим инструкциям. Затем я использовал функцию "экспорта выбранных заданий" в графическом интерфейсе (щелкните правой кнопкой мыши название задания), чтобы экспортировать jobs.tix
файл. Это файл конфигурации, который вам нужен.
На Ubuntu вставьте jobs.tix
подать в ~/.goodsync/
и отредактируйте его в текстовом редакторе, чтобы обновить URL-адрес на стороне клиента в соответствующей папке в локальной файловой системе. Наконец, просто беги gsync sync [jobname]
синхронизировать все файлы. Это сработало для меня как вверх по течению, так и вниз по течению.
<Job>
2 Name = "name"
3 Side1 = <SideOptions>
4 Dir = <Connect>
5 Url = "file:///home/username/path/bla"
6 </Connect>
7 </SideOptions>
8 Side2 = <SideOptions>
9 Dir = <Connect>
10 Url = "msdrive://<compname>-my.sharepoint.com/_api/v2.0/me"
11 UserID = "myid+somegarbleinhex"
12 AccessToken = "blaaaah"
13 RefreshToken = "blaaahA"
14 </Connect>
15 UseTmpDestFile = No
16 </SideOptions>
17 Direction = 0
ExcludeHidden = Yes
ExcludeSystem = Yes
DetectMovesAndRenames = Yes
LinksOption = 1
</Job>