Microsoft OneDrive Business / Office 365 Pro提供1 TB的云存储,但是不幸的是,从来没有一种在Linux上同步它的方法。
Microsoft OneDrive Business / Office 365 Pro提供1 TB的云存储,但是不幸的是,从来没有一种在Linux上同步它的方法。
Answers:
目前,实验性的onedrive-d是一个开源程序,由于不接受Microsoft Sharepoint链接,因此只能同步个人OneDrive帐户。这是一种使用GoodSync for Linux同步OneDrive Business / Office 365的方法,该方法免费供个人使用。
在您的Linux机器上安装合适的版本,例如:
./goodsync-linux-x86_64-release.run
通过回答ñ o表示的GoodSync连接设置和GsServer的Web UI两者。
https://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents/Forms/All.aspx
并基于该网址
获得同步链接,该链接为office365://xxxxxxx.sharepoint.com/xxxxxxxxxxx/Documents
。在您家中的.goodsync子文件夹中创建一个新文件:
gedit ~/.goodsync/jobs.tix
在文件中输入以下代码并保存:
<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>
开始同步过程:
gsync sync "OneDrive_Sync"
在这一步,您的Web浏览器将打开OneDrive / Office 365页面,并要求您授权以允许goodsync访问您的帐户。输入凭据后,同步将开始。
限制:Microsoft不允许长度超过270个字符的URL请求,因此GoodSync无法同步具有长路径名的文件。
请享用!
Ubuntu 18.04及更高版本中的默认Ubuntu存储库中有一个OneDrive客户端。OneDrive是Microsoft的云存储系统。该软件包提供专门用于与OneDrive云存储同步的命令行客户端。
通过以下方式安装:
sudo apt install onedrive
第一次运行时,它要求您使用链接进行身份验证。身份验证后,您可以使用systemctl --user enable onedrive
然后启用守护进程systemctl --user start onedrive
。可以在手册中找到更多说明man onedrive
。设置非常简单,仅需五分钟。
尽管onedrived
xybu 原始且常用的工具仍然不支持OneDrive for Business,但仅支持个人OneDrive。但是,derrix060在GitHub上有一个此项目的分支,该分支对于Business客户端具有某种可行的(但仍然有漏洞)实现。
警告:使用此方法时,强烈建议始终通过https://www.office.com在线检查文件来验证文件是否正确同步,和/或使用此页末尾显示的包装器脚本。至少可以使用桌面通知了解任何错误!
有时,onedrived似乎无法拾取某些更改或正确上传它们,从而使OneDrive处于(部分)不同步的状态。也可能由于某种原因,它与自身产生合并冲突,并通过在括号内附加主机名和可选的数字来在本地重命名文件。不幸的是,没有关于错误的通知,但是您可以在日志文件中看到条目。
如果发生这种情况,您可以尝试通过触摸或重命名它们或它们所在的文件夹来再次尝试重新同步各自的文件。
提示:似乎onedrived库经常出现问题,尤其是直接保存在OneDrive根目录中的文件。最好将所有文件放在子目录中,而不是将它们直接转储到OneDrive文件夹中。
尽管听起来很愚蠢,但我还注意到与通过创建或复制/移动文件相比,通过OneDrive Web客户端上载文件并等待它们同步回到本地文件夹(虽然可能要花几分钟),似乎不会造成太多问题。本地。无论这是实用的还是完全无效的,OneDrive的目的取决于您自己的决定...
有关完整的安装说明,请参见项目的自述文件,但这是一个简短的摘要:
确保没有安装其他版本的onedrived
(或onedrive-d
)。
安装依赖包:
sudo apt install build-essential python3-dev libssl-dev inotify-tools python3-dbus libdbus-1-dev libdbus-glib-1-dev
ngrok
从官方网站https://ngrok.com/download下载Linux的最新客户端。ngrok-client
Ubuntu存储库中的软件包太旧,无法满足要求。
解压缩下载的ngrok-stable-linux-amd64.zip
档案。它包含一个ngrok
二进制文件,您应该将其放在某个位置$PATH
,例如/usr/local/bin/
。
可能不需要注册ngrok。
onedrived
使用pip3
以下命令从GitHub 安装Python3应用程序:
sudo -H pip3 install git+https://github.com/derrix060/onedriveClient.git
(可选)配置的日志文件位置onedrived
,在其中您可以检查是否存在无法正常工作的问题,例如:
onedrived-pref config set logfile_path ~/.config/onedrived/onedrived.log
安装成功后,您必须配置您的帐户和驱动器:
通过运行以下命令,以交互方式添加您的OneDrive for Business帐户:
onedrived-pref account add -b
交互式向导将要求您两次在浏览器中打开一个链接,在该链接中,您将必须使用Microsoft Business帐户授权该应用程序。
确认授权后,它将要求您将重定向到的URL粘贴回交互式向导中。请按照指示操作,并按照命令给出的指示进行操作。
通过检查以下命令的输出,验证是否成功添加了帐户。它看起来应该相似,并列出您用来登录的帐户:
$ 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
通过运行以下命令以交互命令方式配置驱动器:
onedrived-pref drive set
您将看到所有驱动器的列表,并被要求输入要添加到本地配置的驱动器的行号。
然后,您必须指定一个本地目录,该目录要用作与驱动器同步的根文件夹。您可以直接点击Enter,它将使用默认值~/OneDrive
。如果路径不存在,将创建该路径。要使用的忽略文件的路径也一样,只需单击即可Enter,它将使用默认值~/.config/onedrived/ignore_v2.txt
并在必要时创建它。
检查以下命令的输出,以显示有关所有可用和已配置驱动器的信息。它应该在标题下显示您刚刚设置的驱动器以及正确的设置Drives that have been set up
:
onedrived-pref drive list
现在已经配置了驱动器,您需要尝试启动onedrived
守护程序。我建议先以调试模式启动它,以防万一您可能会错过任何问题。这将从onedrived
前台开始:
onedrived start --debug
如果一切正常,并且该命令没有崩溃并退出,请尝试将一些文件放在本地OneDrive文件夹中,看看它是否同步。您可能应该能够通过访问https://www.office.com上的OneDrive Web应用程序并检查您本地添加的文件是否显示在其中来进行验证。
您可以onedrived
通过按Ctrl+ 再次在终端中退出该过程C。
要onedrived
正常启动,作为后台守护程序,请使用以下命令运行它:
onedrived start
您可能应该将此命令添加到“启动应用程序”中,以便它在每次登录时自动启动。请参阅如何在登录时自动启动应用程序?为了那个原因。
如果您希望在onedrived
记录错误时(例如,文件同步失败)在任何时候获得桌面通知,这是一个包装器脚本,它可以实时解析日志文件并使用notify-send向您显示它们。
您可以启动不带参数的包装器脚本(或将其放入自动启动应用程序中)代替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
rclone支持OneDrive for Business。请参阅文章如何使用Rclone在Linux中安装OneDrive(支持企业和个人帐户)-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
/ElementinnerHTML
在我的情况下,驱动器0的URL以结尾并且不包含文件。
从v1.49开始,通过命令行,rclone-browser或Web GUI将其安装在本地目录中。