alist和aria2配合使用的常见问题
alist和aria2是两个非常强大的工具,我在同时使用这两个工具,互相配合的时候,出现了一些问题,网上找也没有具体的解决方法,好在自己排查一番,找到根源都解决了,记录一下。
1、通过alist发送到aria2的下载链接,无法下载,提示“无法创建指定目录”:
这个原因一般是由于两个容器所使用的UID与GID不一致造成的,alist默认使用的root用户,即UID=0、GID=0,所以在aria2中,也要指定UID和GID为0,即root用户和用户组,这样以同样的用户和用户组运行,就不会出现上面的错误了。
2、无法transfer,alist显示aria2已下载完,但不能复制,提示如下图:
aria2中,我们常规的一般是挂载以下目录,一个是配置文件目录,一个是下载目录;
-v /data/docker/aria2/config:/config \
-v /data/docker/alist/temp/downloads:/downloads \
但是通过配合alist使用时,需要注意一个问题,通过alist发送到aria2中的下载信息中,包含了指定的下载目录,并不会下载到默认的/downloads目录中,一般是/opt/alist/data/temp/aria2这个目录,所在aria2容器中还要指定挂载这个目录,将它暴露到宿主主机中。
配置aria2容器时,要将宿主主机的“/data/docker/alist/temp/aria2”目录挂载到aria2容器的“/opt/alist/data/temp/aria2”中:
-v /data/docker/alist/temp/aria2:/opt/alist/data/temp/aria2
通过上面的操作后,还需要在alist中加一个映射,不然文件下载完成后是不能transfer的,因为下载好的文件并没到alist的容器中,还只存在于aria2容器中及aria2映射到的宿主主机的目录中,alist在transfer时,在自己的容器中还找不到下载好的文件,所以不能transfer。
解决方法就是把宿主主机中存放有下载文件的目录/data/docker/alist/temp/aria2,与alist容器对应的目录/opt/alist/data/temp/aria2,进行挂载。
配置alist容器时,要将宿主主机的“/data/docker/alist/temp/aria2”目录挂载到alist容器的“/opt/alist/data/temp/aria2”中:
-v /data/docker/alist/temp/aria2:/opt/alist/data/temp/aria2
这样,宿主主机的目录/data/docker/alist/temp/aria2就连接了aria2与alist(注意:这两个容器中的路径我使用的是默认的且相同的),使用了一个共用的宿主目录,就解决了不能transfer问题。