支持本地挂载的网盘文件列表工具AList

周三继续优化措施,再出差回来就不会有红字了,拖延了很久的苏州之行这周末应该要出发了


什么是 Alist?

AList 是一个支持多存储的文件列表程序,使用 Gin 框架和 Solidjs 库。可以将常见的 18 种网盘整合在一起,并支持 WebDAV 客户端访问。

之前老苏写过一篇 Alist, 但此 Alist 非彼 Alist,之前的 A 应该是 Ali yunpan list ,这次介绍的应该是 All yunpan list

文章传送门: 阿里云盘的目录文件列表程序Alist

从功能上来说,Alist 很像老苏之前介绍的 Sharelist

文章传送门:支持天翼云的在线文件目录ShareList

安装

Alist 支持主流平台和主流的 CPU,所以官方的版本就非常多,据说还有第三方做的群晖套件版

但老苏还是坚持在群晖上以 Docker 方式安装。

在注册表中搜索 alist ,选择第一个 xhofe/alist,版本选择 latest

docker 文件夹中,创建一个新文件夹 allist,并在其中建两个子文件夹 datashare

文件夹 装载路径 说明
docker/allist/data /opt/alist/data 存放设置等
docker/allist/share /opt/alist/share 用作本地存储

如果你不打算用群晖的本地存储,可以只映射 data 卷,用于存放设置文件和数据库

如果你打算启用群晖的本地存储,需要先映射才能更方便的从容器中使用,但是考虑到容器内外用户的差异,建议映射空的文件夹而不是已经有文件的,避免出现权限问题

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
5244 5244

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 新建文件夹 allist 和 子目录
mkdir -p /volume2/docker/allist/{data,share}

# 进入 allist 目录
cd /volume2/docker/allist

# 运行容器
docker run -d \
--name="allist" \
--restart=always \
-p 5244:5244 \
-v $(pwd)/data:/opt/alist/data \
-v $(pwd)/share:/opt/alist/share \
xhofe/alist:latest

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
version: '3'

services:
allist:
image: xhofe/alist:latest
container_name: allist
restart: always
ports:
- 5244:5244
volumes:
- ./data:/opt/alist/data
- ./share:/opt/alist/share

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 allist 和 子目录
mkdir -p /volume2/docker/allist/{data,share}

# 进入 allist 目录
cd /volume2/docker/allist

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

在浏览器中输入 http://群晖IP:5244 就能看到主界面

账号密码

可以在日志中找到

实在找不到的话,也还有办法:

第一种,进终端机操作,执行 ./alist admin 会返回admin 用户的密码

你会得到下面这样的返回值

1
2
username: admin
password: elh0gmY0

第二种,如果你是在 SSH 客户端,执行下面的命令查询

1
2
3
4
5
# 进入容器
docker exec -it allist /bin/sh

# 查询管理员密码
./alist admin

现在可以登录后台了

虽然登录成功了,但是还是空的,因为还没设置网盘

需要进入管理界面添加存储

本地存储

进入 存储 –> 添加 驱动 –> 找到 本地存储

顺便说一下,用 Safari 浏览器,驱动 的显示有问题,不排除可能是我字体的问题;

带红色 * 是必填项,主要有 3个参数;

  • 挂载路径:为显示路径,主要为了容易识别;
  • 根文件夹路径:默认是 /,指的是容器内的路径,所以要设为前面设置的装载路径 /opt/alist/share
  • WebDAV 策略:用默认的本地代理

添加完成后

老苏在 FileStation 中拷入了一张图片

回到首页

虽然没有勾选 显示隐藏 文件以及目录,但是 @eaDir 还是显示出来了

预览下图片

天翼云盘

进入 存储 –> 添加 驱动 –> 找到 天翼云盘

也可以选择 天翼云盘客户端,配置方法类似;

主要有 3 个参数

  • 用户名:你的天翼云用户名;
  • 密码:你的天翼云密码;
  • WebDAV 策略:默认是 302重定向,要改为 本地代理;否则拷贝文件会失败,出现类似文件访问被拒绝 的错误

添加完成后

回到首页

进入 天翼云盘

很奇怪,不管是用的 天翼云盘 还是 天翼云盘客户端,往天翼云盘内拷入,都会显示权限不足,不知道哪里设置的有问题

阿里云盘

进入 存储 –> 添加 驱动 –> 找到 阿里云盘

主要有 4 个参数

  • 刷新令牌:就是我们之前常说的 refresh token,获取的方法老苏介少过多次,但是这里需要说明,老苏之前介绍的方法获取的是桌面 Web 令牌,必须开启 Web 代理,官方推荐使用 移动端 token,获取方式请看官方文档:https://alist.nn.ci/zh/guide/drivers/aliyundrive.html
  • Web 代理:使用桌面 Web 令牌必须启用,否则可能会报下面的错误
1
Key: 'Storage.MountPath' Error:Field validation for 'MountPath' failed on the 'required' tag
  • 秒传:有没有用不清楚,反正老苏开启了;
  • WebDAV 策略:默认是 302重定向,要改为 本地代理,原因和天翼云盘是一样的;

添加完成后

回到首页

进入 阿里云盘

放了个视频,非常流畅,除了可以在网页上直接播放外,也可以点下面对应的播放器,调用播放器来播放

其他网盘

老苏还实践过百度云盘、一刻相册、和彩云网盘、115网盘和123网盘,限于篇幅这里就不讲了

更多网盘的挂载,可以参考官方文档:https://alist-doc.nn.ci/docs/driver/base

使用

主页右下角的展开后,有刷新、上传、新建等常规操作

可以在后台设置 Aria2,这个应该可以用于离线下载

Aria2 老苏也曾经介绍过

文章传送门:115网盘资源下载到群晖

常用的功能不是本文的重点,本地挂载才是

本地挂载

直接在浏览器中访问 http[s]://domain:port/dav/ ,像老苏用 http://192.168.0.197:5244/dav 会返回 Method Not Allowed,所以只能用客户端来挂载

可能是因为上面的原因,导致无法在群晖 File Station 中通过 远程连接 挂载;

Mac 上试了下 Mountain DuckCloudMounterWindows 上试了下 RaiDrive,都能正常的刷出文件目录

Mountain Duck

CloudMounter

RaiDrive

参考文档

alist-org/alist: 🗂️A file list program that supports multiple storage, powered by Gin and Solidjs. / 一个支持多存储的文件列表程序,使用 Gin 和 Solidjs。
地址:https://github.com/alist-org/alist

V2 版本文档 | Alist Document
地址:https://alist-doc.nn.ci/docs/intro

V3 版本文档 | AList文档
地址:https://alist.nn.ci/zh/