前言
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 许可协议。非商业转载及引用请注明出处(作者、原文链接),商业转载请联系作者获得授权。
想请问一下作者 我们在script里修改过滤小文件的时候只作用于pt 是否可以有作用于所有文件的方法 因为我使用Pikpak离线下来 Pikpak本身无法过滤小文件 感谢
大佬好,请问为什么不能将aria2的下载目录放到挂载里?
我试了一下,服务器寄了…
⌇●﹏●⌇
通俗来讲就是远程挂载不是本地存储,不能直接写文件,你要直接写就等于是往缓存中写(内存或磁盘),文件超过大小撑爆了当然就直接寄了。你这属于是踩了之前我踩的坑
你想想我为什么要专门搞个文件上传脚本和文件移动脚本?
上传脚本就是在不挂载的情况下直接传网盘,文件移动脚本就是移动到挂载目录中。
success成功但不能上传的小伙伴可以先安装jq 再配置上传脚本后重启系统
wget ht(去掉括号)tp://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
yum repolist
yum install jq
装了就好
谢谢博主,安装成功了
大佬好,请问aria2下载下来是正常的文件,等他上传到onedrive后,本地和网盘上的文件都变成了0字节是什么原因
这个我没遇到过,去群里问问看有没有小伙伴遇到过类似的情况吧
https://t.me/Aria2c
大佬你好,upload.sh调用的是rclone的sync还是其他的?
是否会覆盖云端同名文件?
如果不会的话,需要修改什么
大佬,这个上传脚本是不是有什么bug啊,我用你的脚本一键安装好aria2后,再配置好自动上传,然后我用aira2下载bt,下完之后自动上传到onedrive,上传完成之后,有一定概率会自动删除部分文件,在OneDrive的回收站里,不知道是怎么回事
脚本不会去删网盘里的文件。
大佬,你也太细致了吧。安装完还直接给ariaNg的连接。666
妙啊,大佬爱死你了
感谢大佬的脚本,这就是站在巨人的肩膀上的感觉,每次换VPS重新装都会第一时间来翻大佬的blog ,非常非常感谢!
感谢大佬的教程。。。我在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
没装,可以自己装下。我是这么解决的
大佬你好,我按教程尝试,下载完成后但没有上传。
是因为脚本没有找到网盘的下载路径吗?请问如何解决,谢谢!
.aria2c 目录下有个rclone.env需要配置下rclone的配置文件地址。大佬忘了写了
如果 rclone 配置文件在默认位置就不需要去设置,那个是给你自定义路径的。一般很少有人会用到,所以我也就没写。
首先感谢大佬的分享,看到下面的评论,同样有这方面需求,我直接复制下
但本人有几个 onedrive,想实现 aria2 下载到不同的目录,文件通过 rclone 上传到不同网盘。
比如:
aira2 下载到 /home/A, 自动上传到 A 网盘;
aira2 下载到 /home/B, 自动上传到 B 网盘;
小白一枚,所以能不能帮忙修改下代码,谢谢
时间精力有限,这需要重构脚本和大量时间去测试,目前暂时不打算做这个功能。你可以通过运行多个 Aria2 去实现,每个 Aria2 下载完上传到不同的网盘。Docker 跑多个容器是最简单实现的方式,现有的思路我已经写在了 Aria2 Pro 那篇文章中了。
感谢大佬的无私分享,我跟着你的步骤来,一步到位,完全没有任何差错,教程清晰易懂,非常nice!
你好,想请问下下载完成后自动移动文件和文件夹到指定目录的问题。我是个linux小白,研究了几天脚本在你的脚本基础上改了改。现在下载的单个文件可以正常自动移动,可是文件夹不行,麻烦帮我看看。
脚本主要部分如下:
没这么简单的,要考虑很多问题,单文件、多文件、多层级目录。这个需求似乎很多人有,有空我会专门写一个脚本。着急用可以网上搜,应该有人已经写过类似的。