简介

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

项目地址:

更新

2020.12.28


  • 自定义页面底部链接
  • 301跳转文件直链
  • 体验优化
  • 隐藏.password密码文件
  • json绑定出错问题

预览

如何部署

首先第一步,Star项目AList

获取refresh_token

为什么不直接使用access_token,因为有效期只有两小时。

Syc大佬的提醒,获取refresh_token其实没这么麻烦,我们只需要登陆阿里云盘之后,打开开发者工具,切换到Application选项卡,点开Local storage,会有一个token项,点开就可以看到refresh_token了,此处感谢一下Syc大佬。

部署

宝塔安装方式

进入宝塔面板 -> 网站 -> 添加站点

  • 域名:填写列表程序的将要使用域名
  • FTP:不创建
  • 数据库:不创建
  • PHP版本:纯静态

创建好后直接进入网站根目录,删除里面的404.html、index.html。

去AList Release(https://github.com/Xhofe/alist/releases) 下载对应系统的程序后端,上传至根目录并解压。

前往AList-Web Release(https://github.com/Xhofe/alist-web/releases) 下载打包好的前端,解压得到一个dist目录放到alist同级目录下,具体操作同上。

在同级目录下新建一个conf.yml配置文件,复制以下内容到该文件中:


info:

title: AList #网站名称,如果填写,则会替换掉默认的

site_url: http://localhost #网站地址,前后端分离时必须正确填写

logo: #网站logo,如果填写,则会替换掉默认的

server:

port: "5244" #程序监听端口

search: false

static: dist

ali_drive:

api_url: https://api.aliyundrive.com/v2

root_folder: root #根目录

access_token: #可不填

refresh_token: #必填!!!

max_files_count: 3000 #一次性最大文件数量

获取refresh_token,登录云盘: (https://www.aliyundrive.com/)

打开开发者工具(F12),刷新页面,切换到Application选项卡,点开Local storage,会有一个Token项,点开就可以看到refresh_token,保存后面数值。

填入刚获取到的refresh_token,填写到第 5 步中配置文件中对应的值,其他值根据需要可以修改,也可以默认。

如果你现在配置完成后网站根目录下应该有两个文件 alist、conf.yml 和一个 dist 文件夹。

PS:如果你不是宝塔面板,请在该文件夹下面执行下面的命令(Linux)如果不是宝塔可以用运行以下命令执行启动。


chmod +x alist

nohup ./alist >log.log 2>&1 &

宝塔面板 -> 软件商店 -> 搜索Supervisor管理器守护进程并安装。

设置Supervisor并确定。

  • 名称:Alidrive
  • 启动用户:root
  • 运行目录:填写网站目录(例如:/www/wwwroot/ali/)
  • 启动命令:nohup ./alist >log.log 2>&1 &
  • 进程:1

其他方式:使用gin作为静态资源服务器

  • 前往AList Release下载对应系统的程序,解压得到一个运行文件alist
  • 前往AList-web下载打包好的前端,解压得到一个dist目录放到alist同级目录下
  • 在同级目录下新建一个配置文件conf.yml,复制以下内容到该文件中:
  1. info:
  2. title: AList #网站名称,如果填写,则会替换掉默认的
  3. site\_url: https://xx.com #网站地址,前后端分离时必须正确填写
  4. backend\_url: https://xx.com #后端地址,用于文件直链复制,必填!!
  5. logo: #网站logo,如果填写,则会替换掉默认的
  6. footer\_text: "DX's Blog" #网页底部文字
  7. footer\_url: https://dx2.cc #网页底部文字链接
  8. music\_img: https://img.oez.cc/2020/12/19/0f8b57866bdb5.gif #预览音乐文件时的图片
  9. server:
  10. port: "5244" #程序监听端口
  11. search: false
  12. static: dist
  13. ali\_drive:
  14. api\_url: https://api.aliyundrive.com/v2
  15. root\_folder: root #根目录
  16. access\_token:
  17. refresh\_token: #必填!!!
  18. max\_files\_count: 3000 #一次性最大文件数量
  • 填入最开始获取到的refresh_token,然后自行修改配置文件中默认的值
  • 现在的情况应该是,目录下有两个文件alistconf.yml和一个文件夹dist,在该文件夹下面执行下面的命令(Linux)
  1. chmod +x alist
  2. nohup ./alist > log.log 2>&1 &

ok,程序已经跑起来了。你可以cat log.log看看有没有报错。或者访问http://ip:5244进行查看。

其他方式:自定义静态资源服务器

与前后端不分离操作步骤差不多,不同的地方在于:

  • 下载AList-web的源码,修改.env.production中的VUE_APP_API_URL为具体部署的后端地址(带后面的/api/),然后yarn && yarn build自行部署
  • conf.yml中的info.site_url填写前端部署的域名,一定要正确填写,否则会报跨域的错误。

反向代理

程序默认监听5244端口,要实现https访问,需要使用nginx反向代理,在配置文件中加入

  1. location / {
  2. proxy\_set\_header X-Forwarded-For $proxy\_add\_x\_forwarded\_for;
  3. proxy\_set\_header Host $http\_host;
  4. proxy\_set\_header X-Real-IP $remote\_addr;
  5. proxy\_redirect off;
  6. proxy\_pass http://127.0.0.1:5244;
  7. }

常见问题解答

  1. 如何给文件夹设置密码?

在要加密的目录下新建一个名称为.password-要设置的密码的文件或者文件夹就可以了。

  1. 如何设置根目录?

修改配置文件中的ali\_drive.root\_folder 为想要设置的文件夹的file\_id即可。

  1. 如何自定义网页底部链接?

修改配置文件中的footer_textfooter_url为要设置的内容,或者不填则不会显示。

  1. 怎么复制文件直链?

进入文件预览,可以预览的文件复制按钮在右上角,不可预览的复制按钮在正中间(backend_url必须设置正确)。

  1. 修改网站icon?

替换掉dist目录下的favicon.ico即可。

Last modification:December 29, 2020
如果觉得我的文章对你有用,请随意赞赏