357全球通 357全球通

Aria2下载的文件自动上传到挂载的谷歌网盘文件夹

in 默认分类 read (783) 文章转载请注明来源!

前言

之前水了一篇文章用rclone在VPS上挂载Google Drive网盘,这样有个缺点,要手动将Aria2下载的文件移动到谷歌网盘指定的文件夹中。俺在发上篇水文的时候试了下,将Directory Lister的网站部署路径设置为了Aria2的下载路径,即/usr/local/caddy/www/aria2/Download,然后又重新将谷歌网盘挂载了一下,把谷歌网盘指定的本地文件夹和下载路径一致,导致了一个问题,下的图片或者视频都打不开.....
看到了Rat's写的一个脚本,他是自动把Aria2下载完的文件移到了谷歌网盘指定文件夹里,比如我的下载路径和Directory Lister路径都是/usr/local/caddy/www/aria2/Download,而我的谷歌网盘指定的本地文件夹在/root/GoogleDrive,等Aria2完成下载任务后,会自动将文件移动到/root/GoogleDrive里。

实现方法

原理是当下载完后aria2会给脚本传3个参数$1$2$3分别为gid、文件数量、文件路径。我们对文件路径这个字符串处理一番就可以达到目的了。
新建脚本文件GDupload.sh,并复制下面代码:

#!/bin/bash
path="$3" #取原始路径,我的环境下如果是单文件则为/data/demo.png,如果是文件夹则该值为文件夹内某个文件比如/data/a/b/c/d.jpg
downloadpath='/home/wwwroot/xx.com/Download' #下载目录
rclone='/home/wwwroot/xx.com/GoogleDrive'   #rclone挂载的目录

if [ $2 -eq 0 ] #下载文件为0跳出脚本
        then
                exit 0
fi

while true; do  #提取下载文件根路径,如把/data/a/b/c/d.jpg变成/data/a
    filepath=$path
    path=${path%/*}; 
    if [ "$path" = "$downloadpath" ] && [ $2 -eq 1 ]
        then
        rclone=${filepath/#$downloadpath/$rclone} #替换路径
        mv -f "${filepath}" "${rclone}"
        exit 0
    elif [ "$path" = "$downloadpath" ]   #文件夹
        then
        mv -f "${filepath}" "${rclone}"/
        rm -rf  "${filepath}"
        exit 0
    fi
done

授权chmod +x GDupload.sh,然后再到Aria2配置文件中加上一行on-download-complete=/root/GDupload.sh即可,后面为脚本的路径。

实现方法载自Kat's Blog


后记

你可以直接下载GDupload.sh文件使用

wget https://xz.357global.top/Bash/GDupload.sh

然后编辑它

nano GDupload.sh

修改以下内容

downloadpath='/usr/local/caddy/www/aria2/Download' #Aria2下载目录
rclone='/home/wwwroot/xx.com/GoogleDrive'   #rclone挂载的目录

然后授权

chmod +x GDupload.sh

aria2.conf中添加一行on-download-complete=/root/GDupload.sh即可,后面为脚本的路径。
不写了,下载去~~~

jrotty WeChat Pay

微信打赏

jrotty Alipay

支付宝打赏

文章二维码

扫描二维码,在手机上阅读!

本文基于《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
文章链接:http://www.357global.com/archives/5.html (转载时请注明本文出处及文章链接)

默认分类
发表新评论
仅有 1 条评论
  1. 友友
    友友 10Edge 14
    回复

    踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩踩

PREVIOUS NEXT
雷姆
拉姆