前言
Aria2 有一个配置项on-download-complete
,即在下载完后执行一个脚本或命令。当下载完成后 Aria2 会给脚本传递分别为 GID 、文件数量、文件路径的 3 个变量。利用这个配置项和这些变量就可以实现诸如下载完成后调用 Rclone 进行上传的操作。整个过程简单来说就是,Aria2 下载文件到 VPS ,完成后告诉 Rclone 将文件上传到网盘。理论上只要是 Rclone 支持的网盘,都可以按照这个思路来实现伪离线下载。当然这篇教程并不是教你如何去写脚本,而是直接用博主已做好的一套方案,按照教程操作很容易就能实现。
准备工作
首先你需要一个适合下载的 VPS ,如果你还没有合适 VPS 推荐去看《便宜高性价比和白嫖 VPS 推荐》,这里精选了博主这些年来使用过的好用的 VPS ,大盘鸡最低只需十几块钱一个月。
安装 Aria2
这里使用 Aria2 一键安装管理脚本 增强版,执行下面的代码下载并运行脚本,出现脚本操作菜单输入 1
开始安装。
wget -N git.io/aria2.sh && chmod +x aria2.sh && ./aria2.sh
安装和配置 Rclone
RCLONE 官方提供了一键安装脚本:
curl https://rclone.org/install.sh | sudo bash
安装完后,输入 rclone config
命令进入交互式配置选项,按照提示一步一步来进行操作即可。如果你一脸懵逼,可以去看《Rclone 安装配置教程》来了解配置的详细过程。
配置自动上传脚本
Aria2 一键安装管理脚本 增强版 整合了 Aria2 完美配置 ,安装后会附带一些附加功能脚本功能脚本,RCLONE 自动上传脚本就是其中之一。由于默认不启用,所以需要手动启用。
TIPS: 本项目的上传脚本使用更稳定快速的原生命令上传方式,而非处在测试阶段的挂载方式,这点和一般的脚本不同。
- 输入
nano /root/.aria2c/aria2.conf
打开 Aria2 配置文件进行修改。或使用Aria2 一键安装管理脚本 增强版中的手动修改选项打开配置文件进行修改。找到“下载完成后执行的命令”,把clean.sh
替换为upload.sh
。
# 下载完成后执行的命令
on-download-complete=/root/.aria2c/upload.sh
nano 编辑器的操作方法参见《Linux 下适合新手的文本编辑器 nano 使用教程》
- 输入
nano /root/.aria2c/script.conf
打开附加功能脚本配置文件进行修改,有中文注释,按照自己的实际情况进行修改,第一次使用只建议修改网盘名称。
# 网盘名称(RCLONE 配置时填写的 name)
drive-name=OneDrive
- 重启 Aria2 。脚本选项重启或者执行以下命令:
service aria2 restart
检查配置是否成功
- 执行
upload.sh
脚本,提示success
即代上传脚本能正常被调用,否则请检查与 RCLONE 有关的配置。
/root/.aria2c/upload.sh
- 打开实时日志并下载任意文件,出现上传成功信息即代表配置成功,否则请认真阅读教程并重新开始。
- 检查网盘是否存在相关文件,若不存在说明你搞错网盘了。
使用方法
当进行完以上所有操作,现在下载文件就会自动上传至相应的网盘。
Aria2 是命令行后端软件,需要配合前端GUI才能有更好的使用体验,对于从来没有接触过的萌新,建议去看《Aria2 前端面板 AriaNg 使用教程》来了解相关基础知识。
遇到问题如何处理
请仔细阅读教程中的每一个字,严格按照教程来进行操作几乎不会遇到问题。
FAQ
FAQ 记录了有关 Aria2 的常见问题与解决方案。
提问
加入 Aria2 TG群和小伙伴们一起讨论。要注意提问的方式和提供有用的信息。提问请确认阅读过《提问的智慧》,这能更好的帮助你去解决问题和节约时间。诸如“为什么不能使用?”、“那你能帮帮我吗?”之类的问题应该没人会知道。另外不要把热心网友当做淘宝客服,没人会陪你打太极,帮你是缘分,不帮是本分。
配合第三方百度网盘工具,还可以实现百度网盘转存其他网盘这样的骚操作,方法参见《百度网盘转存到 OneDrive 、Google Drive 等其他网盘》。
相关 TG 群组:Aria2 Group
相关 TG 频道:Aria2 Channel
本博客已开设 Telegram 频道,欢迎小伙伴们订阅关注。
本文作者:P3TERX
本文链接:https://p3terx.com/archives/offline-download-of-onedrive-gdrive.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。
感谢大佬的教程。。。我在ariang里下载上传没问题,但是直接用aria2c +文件链接的命令只能下载,不能上传,加上 --on-download-complete=/upload.sh也不行,我是不是哪里理解有问题 OωO
这个脚本不适用于命令行的方式。
好的,我用ariang了 OωO
script.conf可以配置两个网盘地址么?就是同时上传onedrive和gdrive
只能一个
大佬你好,有一个问题,就是怎么分段下载,比如一个60g的视频合集种子,但是VPS只有30G(关键上行速度也就600kb/s)要怎么才能让他分段下载,只下载一部分的话下载完成之后任务也会变灰,没法从文件列表里面勾选,有什么好的解决方案吗,或者说已经有但是我没发现
请问大佬,想修改宝塔定时备份路径并自动同步,于是rclone挂载onedrive到了小鸡上,会影响aria2自动上传到onedrive吗?
(其实我就是想实现 aria2自动同步onedrive+ 宝塔定时备份并同步到onedrive).. ,,
如果大佬有空的话可以解答一下~谢谢~
不影响,二者不冲突。
请问下大佬,如果之前是完全按照这个教程进行设置的,那么该如何设置rclone上传失败时自动重新上传呢?经常有一部分文件上传失败,没有及时删除,导致磁盘满了,其他下载任务全部失败
不用设置,默认上传失败会自动重新上传,如果实在上传不了就会放弃,就只能手动通过 RCLONE 上传了。
补上日志:
/root/.aria2c/core: line 109: jq: command not found
/root/.aria2c/core: line 111: jq: command not found
[ERROR] Failed to get download directory!
jq
没装,可以自己装下。大佬你好,我按教程尝试,下载完成后但没有上传。
是因为脚本没有找到网盘的下载路径吗?请问如何解决,谢谢!
首先感谢大佬的分享,看到下面的评论,同样有这方面需求,我直接复制下
但本人有几个 onedrive,想实现 aria2 下载到不同的目录,文件通过 rclone 上传到不同网盘。
比如:
aira2 下载到 /home/A, 自动上传到 A 网盘;
aira2 下载到 /home/B, 自动上传到 B 网盘;
小白一枚,所以能不能帮忙修改下代码,谢谢
时间精力有限,这需要重构脚本和大量时间去测试,目前暂时不打算做这个功能。你可以通过运行多个 Aria2 去实现,每个 Aria2 下载完上传到不同的网盘。Docker 跑多个容器是最简单实现的方式,现有的思路我已经写在了 Aria2 Pro 那篇文章中了。
感谢大佬的无私分享,我跟着你的步骤来,一步到位,完全没有任何差错,教程清晰易懂,非常nice!
你好,想请问下下载完成后自动移动文件和文件夹到指定目录的问题。我是个linux小白,研究了几天脚本在你的脚本基础上改了改。现在下载的单个文件可以正常自动移动,可是文件夹不行,麻烦帮我看看。
脚本主要部分如下:
没这么简单的,要考虑很多问题,单文件、多文件、多层级目录。这个需求似乎很多人有,有空我会专门写一个脚本。着急用可以网上搜,应该有人已经写过类似的。
我有个疑问,aria2可以直接下载到rclone挂载的目录么?如果下到本地,再上传google drive是不是多了一个步骤,而且下的文件不能超过vps的硬盘大小
不可以
aria2下载后会自动解压压缩包的么?我发现下了个bd资源里面有个几百M的zip包里面的好几G的tif图片全被解压出来了,简直魔鬼 ⌇●﹏●⌇
不会,没有这个功能
保姆级教程,谢谢大佬
rclone一直没挂载上OneDrive,可以整合下OneDriveuploader吗?
萌咖大佬开发的专门给vps上传OneDrive用。可惜我不会用 (╯°A°)╯︵○○○
我按照教程先下载了aria2,然后成功配置了rclone,现在aria2,可以下载文件但是不会自动上传。能给我的邮箱私发您的QQ然后私聊吗,我搞了一天直到晚上才连接到rclone,现在就是不上传,真的好气。
绕了一圈又回到rclone了,OneDriveuploader上传找过2G的文件有bug,大佬一直没有修改
tar: Error is not recoverable: exiting now
[错误] Aria2 解压失败 !
该如何解决?gcp的vps,debian9系统。
可能是我昨天更新导致了这个问题,你可以试下今天的新版本。
好的,今天的脚本已经没有问题了。
还有个问题,这个文件下载完了我知道进度,那文件上传到Google drive的进度有办法看吗?
我现在部署好了,对了这个有没有办法让bt只下载不上传?因为谷歌云下载流量不收费上传收费!
进度通过日志可以查看
不上传是不可能的,BT 下载是人人为我,我为人人。
为什么我都配置好以后用ariang下载,在面板里的正在下载、正在等待、已完成这几个菜单点进去都看不到任务呢?但是实际上下载已经开始了,只能看到下载速度,aria2状态那个菜单一直在已连接和未连接之间跳来跳去。下载完以后也自动上传到网盘了,但就是面板里我做不了任何操作啊,查看不了也暂停不了,咋回事请教一下。
网络问题,带宽被占满了。
想请问大佬,我用bt下载的文件没有下完,但是种子已经没有速度了(没有人提供上传了),但是还没下到100%,(只有60%-80%左右)请问这种情况下,该怎么办才能触发自动上传脚本呢?{剩下的没下的内容都不要了}.
先暂停,然后把没有下载完的文件去掉,然后再开始下载。
大佬的这个教程太适合小白用户了,感谢
另外想请教一下,我这边上传速度上不去是怎么回事。刚开始上传时,可以保持在25-30mb/s,然后慢慢的速度就降下去了,最后稳定在5-10mb/s。想知道是微软方面限速了还是rclone api的问题,有解决的办法吗
限速,无解。
你好,能不能加一个下载上传完自动删除种子文件的功能啊,现在只有上传完自动删除下载文件,不能删除种子,下载量大起来会有一堆的种子,非常需要这个功能,麻烦大佬添加一下这个功能
这个很早以前就考虑过,并有几种方案:
实际上种子文件占用空间非常小,所以删不删无所谓。强迫症请自己手动删除。
可以有这个功能,放在aria2.conf,有需要自己开,默认不开就行,不过你说没法获取种子路径那就没办法了
你好,使用您的脚本可以安装,但是启动不了/etc/init.d/aria2: line 64: 13894 Illegal instruction nohup aria2c -c "${CONFIG}" >> "${LOG}" 2>&1
[错误] Aria2 启动失败 !出现这个提示,我用的是斐讯N1刷的Armbian5.77,自己编译的可以运行,但是功能不全,
我这个安装脚本只推荐在 x86 平台上用,自己编译替换
/usr/bin/aria2c
即可。不知道你指的功能不全是什么意思。自己编译的启用功能只有BitTorrent和Message Digest,其他的都没有,谢谢解答,
缺少依赖
哦哦,能说说怎么安装依赖吗?谢谢
https://github.com/aria2/aria2#how-to-build
官方 GitHub 页面有说明。
你其实可以不用编译,直接
apt install -y aria2
就能用了。感谢回复,直接apt安装的话版本是1.30.0,感觉版本有点老了,谢谢
按照你给的网址把依赖安装完又编译了一次,功能全有了,非常感谢