本文要安装的是OneDrive第三方免费客户端,可安装在Ubuntu/Debian、Fedora/CentOS、Arch Linux、deepin等Linux发行版上。
该客户端的特征
状态缓存。
使用Inotify进行实时文件监视。
断点续传。
支持OneDrive for Business(Office 365的一部分)。
共享文件夹(非企业)。
安装方法
依赖:libcurl、SQlite 3、Digital Mars D Compiler (DMD)。
针对Ubuntu/debian:
sudo apt install libcurl4-openssl-dev
sudo apt install libsqlite3-dev
sudo snap install --classic dmd && sudo snap install --classic dub
sudo wget http://master.dl.sourceforge.net/project/d-apt/files/d-apt.list -O /etc/apt/sources.list.d/d-apt.list
sudo apt-get update && sudo apt-get -y --allow-unauthenticated install --reinstall d-apt-keyring
sudo apt-get update && sudo apt-get install dmd-compiler dub
针对Fedora/centos:
sudo yum install libcurl-devel
sudo yum install sqlite-devel
curl -fsS https://dlang.org/install.sh | bash -s dmd
针对arch Linux:
sudo pACMan -S curl sqlite dlang
附1:安装snap
sudo apt install snap
附2:DMD下载安装的脚本
curl -fsS https://dlang.org/install.sh | bash -s dmd
安装好依赖后执行以下命令:
git clone https://github.com/skilion/onedrive.git
cd onedrive
make
sudo make install
注:安装完成后,需要从终端运行一次才能授权它,在终端中执行onedrive即可。系统将要求使用Web浏览器打开特定的链接,在该链接中,将必须登录到Microsoft帐户并授予应用程序访问文件的权限,授予权限后,将被重定向到空白页,将空白页的URI复制到应用程序中。
卸载的方法
sudo make uninstall
# 删除应用程序状态
rm -rf .config/onedrive
配置的方法
配置是可选的,默认情况下,所有文件都下载到~/OneDrive中,并且仅跳过隐藏文件。如果要更改默认值,可以将随附的配置文件复制并编辑到~/.config/onedrive目录中:
mkdir -p ~/.config/onedrive
cp ./config ~/.config/onedrive/config
nano ~/.config/onedrive/config
可用选项:
sync_dir:文件将被同步到的目录。
skip_file:与该模式匹配的任何文件或目录将在同步期间被跳过。
模式不区分大小写,*和?支持通配符,使用|分隔多个模式。
注意:更改skip_file后,必须通过执行onedrive --resync来执行完全同步。
1、选择性同步
选择性同步允许您仅同步特定的文件和目录,要启用选择性同步,请在~/.config/onedrive中创建一个名为sync_list的文件,文件的每一行代表从sync_dir开始的相对路径,在所有操作期间,将跳过与文件的任何行都不匹配的所有文件和目录,这是sync_list的示例:
Backup
Documents/latest_report.docx
Work/ProjectX
notes.txt
注意:更改同步列表后,必须通过执行onedrive --resync来执行完全同步。
2、共享文件夹
与您共享的文件夹可以通过将其添加到OneDrive进行同步,为此,请打开“Onedrive”,转到共享文件列表,右键单击要同步的文件夹,然后单击“添加到我的OneDrive(Add to my OneDrive)”。
3、OneDrive服务
如果要自动同步文件,请启用并启动systemd服务:
systemctl --user enable onedrive
systemctl --user start onedrive
要查看日志运行:
journalctl --user-unit onedrive -f
注意:Ubuntu仅从版本15.04开始支持systemd。
4、使用多个帐户
您可以运行指定不同配置目录的应用程序的多个实例,以处理多个OneDrive帐户。为此,可以使用--confdir参数,这是一个例子:
onedrive --monitor --confdir="~/.config/onedrivePersonal" &
onedrive --monitor --confdir="~/.config/onedriveWork" &
注:
--monitor保持应用程序运行并监视更改。
&将应用程序置于后台,并使终端保持交互式。