阿里云盘的目录文件列表程序Alist

网盘列表软件很多,老苏之前分享过 Z-fileShareList,这两款软件都支持多家第三方存储,可以直接将网盘从个人使用变成一个面向大众的资源网站,不过老苏觉得还是自己低调用用就好了,毕竟是会加重网盘厂商访问压力的。

在线文件目录Z-file
支持天翼云的在线文件目录ShareList

什么是 Alist ?

Alist 是一款阿里云盘的目录文件列表程序,后端基于golang 最好的 http 框架 gin ,前端使用 vueant design

Alist 和前面两款软件最大的不同在于仅支持阿里云盘。

refresh_token

在 『 能将阿里云盘挂载为webdav的webdav-aliyundriver 』 一文中,老苏介绍过两种获取 refresh_token 的方法,但用这两种方法获取的 refresh_token 在这个项目中却不灵了,具体表现在:

  1. 不能播放视频

  1. 不能下载文件

这显然不是我们希望的结果,按官方的说明,是因为 web 版的 refresh_token 有限制,所以需要抓取移动版的 refresh_token ,但是官方的文档写的太含糊,搞了半天才弄明白

打开下图红框中的地址:https://media.cooluc.com/decode_token/

看到的是不是和老苏一样?

必须往下拉往下拉往下拉才能看到教程,这坑踩得😶,害老苏花了半天时间找度娘

为了方便大家看,把官方教程贴过来了,老苏略做了补充

1、点击本页顶部 移动端网页登录入口,按 F12 打开 chrome 浏览器开发者工具,点击开发者工具 Network 栏。

需要重新加载一次才能记录网络活动

windows 和 macos 下的快捷键不同,看提示操作就好了

一定要看到下图中红框中的内容再进行下一步的操作

2、输入阿里云盘账户信息进行登录(登录成功不会有任何提示),接着在开发人员工具找到并拷贝 login.do?appName=aliyun 链接的 response 数据。

3、粘贴 response 数据到输入框,点击 解码Refresh Token 按钮,页面会弹出你的 refresh_token

获取到 refresh_token 等于已经成功了一半,接下来我们就可以进入 Alist 的安装了

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 alist ,选择第一个 sbwml/alist,双击直接下载。

docker 文件夹中,创建一个新文件夹,并将其命名为 alist,并在 alist 中新建子文件夹 config

文件夹 装载路径 说明
docker/alist/config /alist/config 存放数据库和设置文件

端口

本地端口 直接用了默认的端口 5244

本地端口 容器端口
5244 5244

环境

不需要做任何修改,哪怕上一步修改了 本地端口 也不需要修改,因为这个 PORT 指的是 容器端口

配置

File Station 中打开 docker/alist/config

编辑 conf.yml 文件

关于 conf.yml 中可以看看官方的文件,里面有注释,应该比较好理解,地址:https://www.nn.ci/archives/alist.html

需要注意的是2个 password

  • server –> password 是用于重构目录用的,老苏称之为 重构密码,可以为空;
  • ali_drive –> drives –> password 是访问网盘用的密码,老苏称之为 盘符密码,如果为空就可以直接刷出文件列表,多个盘可以单独设置不同的密码;

当然最重要的还是填入之前获取的 refresh_token 值,保存之后需要重新启动容器。

运行

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

只是第一次会有报错信息 path not found.(第一次请先点击网页底部rebuild),需要点底部的 重构目录

弹出菜单中,重建深度用了-1,输入前面设置的 重构密码(如果前面设置了的话)

根目录下重建的时间取决于文件的数量,可能需要的时间会比较长一些

进入日志能看到有数据库插入操作

完成后需要输入 盘符密码(如果前面设置了的话)

接着就能看到目录了

如果哪一级目录不显示,就重构一下目录即可

前面虽然重建深度设置了 -1,但是 max_files_count 还是有限制的,不然这个重构时间会变得非常漫长

然后就 OK 了

再来试试电影,已经可以非常流畅的播放了

如果你把这个项目映射到公网,别人在看电影的时候并不会占用你的带宽,也不会在群晖里生成缓存,而是直接走的阿里云,这也是为啥老苏说要低调使用的原因。

唯一限制 Alist 速度的可能就是 SQLite ,而这可以通过配置为 MySQL(MariaDB) 来进行提升。

参考文档

Xhofe/alist: 一个阿里云盘列表程序
地址:https://github.com/Xhofe/alist

Xhofe/alist-web: 阿里云盘列表的前端
地址:https://github.com/Xhofe/alist-web

阿里云盘列表AList部署教程 - Xhofe’s Blog
地址:https://www.nn.ci/archives/alist.html