本文介绍如何利用云服务器,为OneDrive增加离线下载功能。在充分利用云服务器空闲资源的同时,享受OneDrive强大的在线影音、文档编辑功能。
太长不看的背景介绍
还是点开看看吧
微软推出的OneDrive拥有非常强大的功能,可以在多个终端管理自己的文件,国内访问速度非常快,下载文件可以达到满速,不会像百度云那样即使有百兆网络,也只能每秒100k左右的下载速度。如果无法愉快的使用GoogleDrive,那么OneDrive是一个非常不错的选择。
在国内的主流云盘中,都会有一个离线下载的功能,即允许用户添加下载任务,服务器会自动将资源下载到云盘中,用户过段时间就可以查看自己的文件了。
使用
离线下载
功能一般有如下两个目的1. 将需要观看的影视资源,下载到服务器中,过段时间就可以直接在线观看 (百度云)
2. 利用服务器的高速网络,将本来比较慢速的资源提前下载好,再取回本地 (迅雷离线)
而本次为OneDrive搭建的离线下载功能,主要推荐的使用方法如下:
1. 将需要阅读的文档资源,离线下载到OneDrive中,随时随地查看
2. 将需要编辑的Office资源离线保存,使用Office Online编辑
3. 将喜欢的音乐离线保存,随时随地听
4. 将喜欢的影视作品离线保存,随时随地观看
5.
不推荐的使用方法:
1. 将喜欢的游戏离线保存到服务器,过段时间再下载到电脑上
2. 将需要安装的大型软件离线保存
实现思路:
添加下载任务 => 将资源保存到服务器中 => 在服务器上将资源同步到OneDrive中 => 在OneDrive中查看资源
准备材料:
- 一台云服务器
- OneDrive
备注: 本次使用的云服务器安装的是CentOs 7.2系统
首先实现将服务器上的资源同步到OneDrive
我们采用了Linux OneDrive的开源项目。
安装git用于Clone GitHub上的资源
1 | yum install git |
开始安装onedrive
1 | # 安装依赖 |
如果你在make过程中遇到了dmd:命令未找到
错误,请先激活dmd,方法如下
1 | # 激活 |
安装完成之后,需要配置一下需要同步的内容,因为Onedrive默认会将服务器上所有的内容都同步下来,这样非常慢。
在onedrive 目录下执行以下三行命令,创建OneDrive配置文件
1 | mkdir -p ~/.config/onedrive |
配置信息可以参考如下
1 | # 本地同步的位置 |
- 这里使用
/home/download/onedrive
作为同步目录,是为了给Aria2留出下载目录,可以根据自己需要随便修改 - skip_file可以使用|添加多个规则
接下来为OneDrive执行授权,在命令行中执行
1 | onedrive |
会输出一个授权地址,复制授权地址到本地浏览器中打开,授权登录之后,将授权后的全部地址拷贝过来粘贴即可
从现在开始,只要执行OneDrive即可将本地的资源与服务端的内容同步。
但是我们希望在关闭SSH终端之后,依然可以自动同步。
官方推荐的方案是:
1 | systemctl --user enable onedrive |
但是在Centos 7.2中会出现错误,因此可以使用nohup
、screen
等命令允许在关闭SSH终端之后,继续执行,执行以下命令即可
1 | nohup onedrive -m & |
现在,我们在服务器上的文件操作,都会同步到OneDrive中了。
如果需要结束后台同步,找到ID,结束即可
1 | [root@onedrive ~]# ps -ef|grep onedrive |
安装Aria2实现远程下载
首先安装Aria2
1 | yum install aria2 |
配置
1 | mkdir /home/soft/aria2c -p |
配置内容参考如下
1 | #用户名 |
几个关键内容:
rpc-secret
用于设置访问tokendir
设置到OneDrive的目录
启动Aria2服务:
1 | aria2c --conf-path=/home/soft/aria2c/aria2.conf -D |
接下来安装UI界面
UI界面采用webui-aria2
进入/home/wwwroot
目录,克隆项目
1 | git clone https://github.com/ziahamza/webui-aria2.git |
使用Nginx启动界面服务
安装nginx
1 | # 安装 |
配置Nginx
1 | vim vim /etc/nginx/nginx.conf |
修改root目录到项目所在位置
1 | server { |
重启Nginx
1 | nginx -s reload |
打开对应地址,发现已经成功了
测试下载文件
注意设置dir为OneDrive下的目录
过一会儿在Onedrive上,就会发现文件已经成功转存。