注意:可能由于最近微软更新了接口,本客户端出现文件无法下载的问题。(2018年12月5日)

为什么选择OneDrive

Linux下可以使用的网盘有很多个,例如坚果云、MEGA云盘、Wuala等。单独使用的话,最好的网盘并不是OneDrive。但是由于一些原因,必须在Windows和Linux之间同步文件,而MS Office自带OneDrive,那么Linux上可以顺便使用OneDrive。另外,选择OneDrive也会减少服务商停止服务的风险。

客户端特性

OneDrive并没有提供Linux下的官方客户端,但伟大的网友发挥自己的智慧开发了开源版的OneDrive客户端。当然,这个客户端没有图形界面,而且文件上传会有一些延迟。不过,我们一般设置了同步选项之后并不需要去频繁打开客户端。

该版本的客户端特性如下:

  • 状态缓存
  • 实时监控文件变化
  • 可撤销的上传
  • 支持OneDrive商业版
  • 分享文件夹

客户端安装

安装依赖

客户端安装前要先安装依赖。

Ubuntu/Debian:

1
2
3
4
5
6
7
8
9
10
sudo apt install libcurl4-openssl-dev
sudo apt install libsqlite3-dev

# Ubuntu 18
sudo snap install --classic dmd && sudo snap install --classic dub

# Ubuntu 17
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

1
2
3
sudo yum install libcurl-devel
sudo yum install sqlite-devel
curl -fsS https://dlang.org/install.sh | bash -s dmd

Arch Linux

1
sudo pacman -S curl sqlite dlang

安装onedrive

1
2
3
4
git clone https://github.com/skilion/onedrive.git
cd onedrive
make
sudo make install

首次运行

OneDrive安装之后,首次运行要给应用授权才能用使用。通过终端运行onedrive,会出现一个url。在网络浏览器中打开该url,则会要求登录,并请求为文件访问授权。在授权后会跳转到一个空白页面。将该页面的uri复制到终端,确认即完成授权。

配置

首先将源码文件夹中的配置文件复制到~/.config/onedrive/config,使用文本编辑器编辑基本配置。常用配置有:

  • sync_dir:用来同步的本地文件夹
  • skip_file:跳过的文件。设置该参数后必须运行onedrive –resync来重新同步以应用此改变。

选择同步哪些文件夹 则需要在~/.config/onedrive/下新建一个名为sync_list的文件,模仿下述例子来写你自己的配置文件。

1
2
3
4
Backup
Documents/latest_report.docx
Work/ProjectX
notes.txt

然后运行onedrive --resync来重新同步以应用此改变。

开机启动OneDrive

开机启动OneDrive,自动监视文件夹变动。采用下面的代码。

1
2
systemctl --user enable onedrive
systemctl --user start onedrive

参考资料