阿里云盘的目录文件列表程序Alist
网盘列表软件很多,老苏之前分享过 Z-file
和 ShareList
,这两款软件都支持多家第三方存储,可以直接将网盘从个人使用变成一个面向大众的资源网站,不过老苏觉得还是自己低调用用就好了,毕竟是会加重网盘厂商访问压力的。
『 在线文件目录Z-file 』
『 支持天翼云的在线文件目录ShareList 』
什么是 Alist ?
Alist
是一款阿里云盘的目录文件列表程序,后端基于golang
最好的http
框架gin
,前端使用vue
和ant design
。
Alist
和前面两款软件最大的不同在于仅支持阿里云盘。
refresh_token
在 『 能将阿里云盘挂载为webdav的webdav-aliyundriver 』 一文中,老苏介绍过两种获取 refresh_token
的方法,但用这两种方法获取的 refresh_token
在这个项目中却不灵了,具体表现在:
- 不能播放视频
- 不能下载文件
这显然不是我们希望的结果,按官方的说明,是因为 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/alistXhofe/alist-web: 阿里云盘列表的前端
地址:https://github.com/Xhofe/alist-web阿里云盘列表AList部署教程 - Xhofe’s Blog
地址:https://www.nn.ci/archives/alist.html