我尝试了 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 的(基于浏览器的)授权。
- 使用 Windows 版本 Goodsync 中的“导出”选项创建文件
jobs.tix
。 ~/.goodsync
在 Linux 机器上创建了一个文件夹。- 将文件放在
jobs.tix
该文件夹中。 - 这是我必须自己发现的新步骤:将文件重命名
jobs.tix
为jobs-groups-options.tix
— 这允许使用整个配置。 diff
应用以下更改,如原始 Windows 文件的输出所示jobs.tix
:$ diff ~/Downloads/jobs.tix ~/.goodsync/jobs-groups-options.tix 51c51 < URL = “文件://” ––– > Url =“file:///home/tomh/onedrive” 54c54 < URL =“file:///~tomh-a/od” ––– > Url =“file:///home/tomh/onedrive” 68c68 < } 书签 = { } 时间戳 = 013061702176 ––– > } 书签 = { } 时间戳 = 013061705503 84c84 < URL =“file:///~tomh-a/od” ––– > Url =“file:///home/tomh/onedrive” 87c87 <AcctUrl =“file:///~tomh-a/od” ––– > AcctUrl =“file:///home/tomh/onedrive”
其中,tomh-a
是我的 Windows 用户名,od
是我的本地 Windows OneDrive 文件夹,tomh
是我的 Linux 用户名,onedrive
是我的本地 Linux OneDrive 文件夹。您可以放心地忽略这些TimeStamp
行,我只是为了完整性而保留了它们。请注意,此diff
输出是未消毒或改变除了用相应的 HTML 实体替换某些字符外,其他任何方式都无法做到。所以是的,你们现在都知道我的 Windows 和 Linux 用户名以及 OneDrive 同步文件夹。看不出这会如何危及我的安全,而且它提高了无拼写错误的可能性。- 我做了一个不太明显的变化来让它工作:你会在文件中找到这两行:
Side2 = <SideOptions> Conn = <连接>
我把第二行改成如下:Side2 = <SideOptions> Dir = <连接>
它立即开始工作。
免责声明:在我运行同步(下一步)后,Goodsync 将行改回了Conn = <Connect>
。所以我可能是错的。也许我可以保持原样(现在也是这样)。但这是我在它开始工作之前做的最后一次改变。完全有可能我同时更改了其他东西,使它工作了。但至少做那个改变没有休息对我来说:) - 运行同步
gsync 同步“Onedrive”
将“Onedrive”替换为如下所示的任何内容:工作 = { <工作> 名称 =“Onedrive”
我认为,API v2.0 要求使用 OAuth,因此无法简单地jobs-groups-options.tix
使用 Linux 来获取他人的文件并让其为自己工作。除非他们决定为 Linux 制作 GUI 版本 — 或者至少添加启动浏览器以建立授权的 OAuth 代码。
答案2
我今天遇到了同样的问题。最终对我有用的方法是在 Windows 机器上下载并使用 GoodSync GUI,然后将最终配置移植到我的 Linux 机器上。
在 Windows 上,我按照以下步骤配置了我的 Business OneDrive这些说明。接下来,我使用 GUI 的“导出选定的作业”功能(右键单击作业名称)导出一个jobs.tix
文件。这是您需要的配置文件。
在 Ubuntu 上,将jobs.tix
文件粘贴到~/.goodsync/
文本编辑器中并在其中编辑,以将客户端 URL 更新到本地文件系统中的相应文件夹。最后,只需运行gsync sync [jobname]
即可同步所有文件。这对我而言上游和下游都有效。
答案3
<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>