此前的一篇文章 中,我曾为大家介绍了在 VPS 上部署 aria2 离线下载和 FileRun 文件管理系统的方法。不过,VPS 的空间终归有限,为了避免将有限的生命浪费在无尽的删除旧文件上,外挂大容量网盘服务是个不错的选择。

在本文中,我将以 OneDrive 为例,在前文的基础上,介绍其中一种实现方法。

OneIndex 是一款免费开源的小程序,作用是索引 OneDrive 的文件目录列表并展示在本地,不占用硬盘空间和网络流量,比较适合 VPS 使用。

安装第一步,当然是从下载开始。撰写本文时 OneIndex 最新版为 3.1,在终端执行的命令是 wget https://github.com/donwa/oneindex/releases/download/3.1/oneindex.zip,你可以在 OneIndex 的 GitHub Releases 页面找到其最新版下载地址。

接下来,执行命令 unzip oneindex.zip -d /var/www/html/OneIndex,将下载好的程序解压至 Apache 工作目录下。

这时,打开 你的VPS.IP/OneIndex,应该会出现下图所示网页。如果环境检测 1、2 失败,请安装 PHP 和 curl;如果 3、4 失败,请分别执行 chmod 777 /var/www/html/OneIndex/configchmod 777 /var/www/html/OneIndex/cache 赋权。

接下来,我们只需要依据网页提示,创建并获取 OneDrive 应用机密(只展示一次,务必牢记)和 App ID,填写表单就行了。

最后,你应该会看到下图所示的网页,表示 OneIndex 已配置成功。由于利用 VPS 作为中转,无需魔法上网也能在大陆直连并下载 OneDrive 文件。

此外,你还可以访问 你的VPS.IP/OneIndex/?/admin 来进入 OneIndex 管理后台,进行修改密码、更换主题、自定义文件展示方式等设置。

现在,到了激动人心的折腾 aria2 下载文件后自动上传 OneDrive 时间。让我们执行 vi ~/.aria2/aria2.conf(请根据自己设置的下载路径修改),在最后加上 on-download-complete=/root/upload2one.sh,保存并退出。

下面,执行 vi /root/upload2one.sh,将下面的代码粘贴进去,保存并退出。再输入 chmod +x /root/upload2one.sh,完成后执行 /etc/init.d/aria2 restart 重启 aria2。


#!/bin/bash
path=$3
downloadpath='/root/Download'
if [ $2 -eq 0 ]
  then
    exit 0
fi
while true; do
filepath=$path
path=${path%/*};
if [ "$path" = "$downloadpath" ] && [ $2 -eq 1 ]
    then
      /usr/local/php/bin/php /var/www/html/one.php upload:file "$filepath" /upload/
    rm -rf "$filepath"
    exit 0
elif [ "$path" = "$downloadpath" ]
    then
      /usr/local/php/bin/php /var/www/html/one.php upload:folder "$filepath"/ /upload/"${filepath##*/}"/
    rm -rf "$filepath"/
    exit 0
fi
done

其中,/root/Download 是你的 aria2 下载路径,/usr/local/php/bin/php 是 PHP 安装路径,/var/www/html/one.php 是 OneIndex 安装路径。

这时,再使用 aria2 下载文件后,就会自动上传至 OneDrive 的 /upload/ 目录中,不占用 VPS 硬盘空间。