如何在Linux(Ubuntu)上同步OneDrive Business(Office 365)?

我尝试了Sayed Metwaly提出的解决方案( 如何在Linux上同步OneDrive Business / Office 365? )但我收到以下错误消息:

=== 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) 

关于我做错了什么的任何想法? 谢谢

以下是我为使其快速工作所做的工作:

  1. 使用Windows计算机使用Windows版本的Goodsync设置同步。 这包括使用Office 365设置(基于浏览器的)授权。
  2. 使用Windows版本的Goodsync中的“导出”选项来创建jobs.tix文件。
  3. 在Linux机器上创建了一个~/.goodsync文件夹。
  4. jobs.tix文件放在该文件夹中。
  5. 这是我必须自己发现的新步骤:将jobs.tix文件重jobs.tixjobs-groups-options.tix – 这允许使用整个配置。
  6. 应用以下更改,如原始Windows jobs.tix文件中的diff输出所示:
     $ diff~ / Downloads / jobs.tix~ / .goodsync / jobs-groups-options.tix
     51c51
      Url =“file:/// home / tomh / onedrive”
     54c54
      Url =“file:/// home / tomh / onedrive”
     68c68
     <} Bookmarks = {} TimeStamp = 013061702176
     ---
     >} Bookmarks = {} 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行,我只是将它们保留为完整性。 请注意,除了用相应的HTML实体替换某些字符外, 不会以任何方式清理或更改diff输出。 所以,是的,您现在都知道我的Windows和Linux用户名以及OneDrive同步文件夹。 看不出这会如何影响我的安全性,并且它提高了它没有错字的可能性。

  7. 我改变了一个不起眼的东西使它工作:你会在文件中找到这两行:
      Side2 = 
     Conn = <连接> 

    我更改了第二行如下:

      Side2 = 
     Dir =  

    它立即开始工作。
    免责声明:在我运行同步(下一步)后,Goodsync将线路更改回Conn = 所以我错了。 也许我可以把它原样(并且再次)。 但这是我在开始工作之前所做的最后一次改变。 完全可能的是,我在改变其他东西的同时改变了它。 但至少做出改变并没有 让我失望:)

  8. 运行同步
      gsync同步“Onedrive” 

    用“Onedrive”代替看起来像这样的线条中的任何内容:

     工作= {<工作>
    名称=“Onedrive” 

我相信,使用OAuth的API v2.0要求使得无法简单地使用其他人的jobs-groups-options.tix文件,并使其仅使用Linux就能使用。 也就是说,直到他们决定为Linux制作GUI版本 – 或者至少添加启动浏览器以建立授权的OAuth代码。

我今天遇到了同样的问题。 最终对我有用的是在Windows机器上下载和使用GoodSync GUI,并将最终配置移植到我的Linux机器上。

在Windows上,我按照这些说明配置了Business OneDrive。 接下来,我使用GUI的“导出所选作业”function(右键单击作业名称)来导出jobs.tix文件。 这是您需要的配置文件。

在Ubuntu上,将jobs.tix文件粘贴到~/.goodsync/ ,然后在文本编辑器中对其进行编辑,以将客户端URL更新到本地文件系统中的相应文件夹。 最后,只需运行gsync sync [jobname]即可同步所有文件。 这对我来说都适用于上游和下游。

  2 Name = "name" 3 Side1 =  4 Dir =  5 Url = "file:///home/username/path/bla" 6  7  8 Side2 =  9 Dir =  10 Url = "msdrive://-my.sharepoint.com/_api/v2.0/me" 11 UserID = "myid+somegarbleinhex" 12 AccessToken = "blaaaah" 13 RefreshToken = "blaaahA" 14  15 UseTmpDestFile = No 16  17 Direction = 0 ExcludeHidden = Yes ExcludeSystem = Yes DetectMovesAndRenames = Yes LinksOption = 1