阿里云盘列表程序--AList
简介
AList是一款阿里云盘的目录文件列表程序,后端基于golang
最好的http
框架gin
,前端使用vue
和ant design
。
项目地址
官方安装教程
https://www.nn.ci/archives/alist.html
预览
- https://alist.nn.ci (稳定版本,即Github Release的最新版本)
https://alist.now.sh(开发版本,随着GitHub提交更新)
部署
获取refresh_token
!!!注意:该获取 refresh_token的方式已失效,请根据官方教程,通过手机app获取!!!!
登录云盘
浏览器访问阿里云盘网页版,打开开发者工具,切换到Application
选项卡,点开Local storage
,会有一个token
项,点开就可以看到refresh_token
了!!保存备用。
为什么不直接使用access_token
,因为有效期只有两小时。
新建网站
宝塔新建网站就不多说了。新建好之后,点进去把根目录不相关的文件都删掉。
部署前后端
注意:这里下载我们直接就用宝塔自带的远程下载来下载你需要的程序即可。
- 前往AList Release下载对应系统的程序后端,解压得到一个运行文件
alist
- 前往AList-web下载打包好的前端,解压得到一个
dist
目录放到alist
同级目录下,具体下载同上。 - 在同级目录下新建一个配置文件
conf.yml
,复制以下内容到该文件中:
info:
title: AList #标题
logo: "" #网站logo 如果填写,则会替换掉默认的
footer_text: Xhofe's Blog #网页底部文字
footer_url: https://www.nn.ci #网页底部文字链接
music_img: https://img.xhofe.top/2020/12/19/0f8b57866bdb5.gif #预览音乐文件时的图片
check_update: true #前端是否显示更新
script: #自定义脚本,可以是脚本的链接,也可以直接是脚本内容
autoplay: true #视频是否自动播放
preview:
text: [txt,htm,html,xml,java,properties,sql,js,md,json,conf,ini,vue,php,py,bat,gitignore,yml,go,sh,c,cpp,h,hpp] #要预览的文本文件的后缀,可以自行添加
server:
port: "5244"
search: true
static: dist
site_url: '*'
password: password #用于重建目录
ali_drive:
api_url: https://api.aliyundrive.com/v2
max_files_count: 3000
drives:
- refresh_token: xxx #refresh_token
root_folder: root #根目录的file_id
name: drive0 #盘名,多个盘不可重复,这里只是示例,不是一定要叫这个名字,可随意修改
password: pass #该盘密码,空('')则不设密码,修改需要重建生效
hide: false #是否在主页隐藏该盘,不可全部隐藏,至少暴露一个
- refresh_token: xxx #只有一个盘的话,该段完全可以删除,反之有更多可以继续添加
root_folder: root
name: drive1
password: pass
hide: false
database:
type: sqlite3
dBFile: alist.db
- 填入最开始获取到的
refresh_token
,然后自行修改配置文件中默认的值 - 现在的情况应该是,目录下有两个文件
alist
、conf.yml
和一个文件夹dist
,在该文件夹下面执行下面的命令(Linux)如果不是宝塔可以用运行以下命令执行启动。
chmod +x alist
nohup ./alist >log.log 2>&1 &
ok,程序已经跑起来了。你可以cat log.log
看看有没有报错。或者访问http://ip:5244进行查看。
守护进程(可选)
vim /usr/lib/systemd/system/alist.service
添加以下内容,其中path_alist为alist所在的路径
[Unit]
Description=alist
After=network.target
[Service]
Type=simple
WorkingDirectory=path_alist
ExecStart=path_alist/alist -conf conf.yml
Restart=on-failure
[Install]
WantedBy=multi-user.target
然后systemctl daemon-reload
重载配置,现在你就可以使用这些命令来管理程序了:
- 启动:
systemctl start alist
- 关闭:
systemctl stop alist
- 自启:
systemctl enable alist
- 状态:
systemctl status alist
使用mysql(可选)
修改database部分配置:
database:
type: mysql
user: 用户名
password: 密码
host: 127.0.0.1
port: 3306
name: 数据库名
反向代理
程序默认监听5244端口,要实现https访问,需要使用nginx反向代理,在配置文件中加入
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect off;
proxy_pass http://127.0.0.1:5244;
}
常见问题解答
- 如何给文件夹设置密码?
在要加密的目录名称后面加上.password-密码
,列表中会自动消除后面的密码部分。 - 如何隐藏文件夹
在要隐藏的文件夹名称后面加上.hide
即可。 - 如何重建目录树
点击网页底部的rebuild按钮,输入配置文件中设置的server.password确定即可。 - 如何设置根目录?
修改配置文件中的ali_drive.root_folder
为想要设置的文件夹的file_id
即可。 - 如何自定义网页底部链接?
修改配置文件中的footer_text
和footer_url
为要设置的内容,或者不填则不会显示。 - 怎么复制文件直链?
点进文件,右上角有复制直链的按钮。 - 修改网站icon?
替换掉dist
目录下的favicon.ico
即可。 - 为什么新上传的文件不显示/删除了的文件还在?
列表展示的是本地数据库里的数据,更新文件之后需要重建。 - 如何更新?
前端:下载新的打包好的文件,删掉原来的dist文件夹,解压新的dist放入原来的位置即可。后端:pkill alist
停掉老的进程,删除旧的alist
,下载新的alist,查看配置文件,补上新的配置项,再次运行即可。 - 运行显示检查更新之后直接报错?
可能是无法访问到GitHub的api,可以在命令行后面加上-skip-update
跳过检查更新。