简介
AList是一款阿里云盘的目录文件列表程序,后端基于golang
最好的http
框架gin
,前端使用vue
和ant design
。没有专门学过前端,大佬轻喷?
项目地址:
预览
如何部署
首先第一步,Star本项目AList(bushi
获取refresh_token
为什么不直接使用access_token
,因为有效期只有两小时。
首先第一步需要获取refresh_token
,这也是部署过程中最麻烦的一步。我尝试过直接通过login_token去登陆获取,但是会得到这个错误:
User not authorized to operate on the specified APIs you need access by oauth.
知道如何破解的大佬,欢迎发起pr?或者在issues中告诉我。所以,现在还是先获取refresh_token
吧。
- 进入阿里云盘登录页,打开开发者工具,并开启Preserve log:
- 选择一种方式登录,我这里选择的是扫码其他的应该也差不多
- 找到
https://auth.aliyundrive.com/v2/oauth/token_login
这个请求并复制请求中的token
- 这是我们就需要一个模拟请求插件,这里我使用的是Postwomen,用刚刚复制的数据再次请求这个接口
- 然后我们就会得到一个goto的链接(在控制台就是看不到,是真滴奇怪,如果可以看到就没这么麻烦了),链接中有个code参数,我们再次复制它,然后用这个code请求
https://websv.aliyundrive.com/token/get
这个接口,注意这个code只能使用一次,所以这里没有打码了?
- 大功告成,终于得到这个
refresh_token
了,保存好它,然后就可以开始接下来的步骤了。
部署
前后端不分离
- 前往AList Release下载对应系统的程序,解压得到一个运行文件
alist
- 前往AList-web下载打包好的前端,解压得到一个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 #根目录 token: access_token: refresh_token: #必填!!! max_files_count: 3000 #一次性最大文件数量
- 填入最开始获取到的
refresh_token
,然后自行修改配置文件中默认的值 - 现在的情况应该是,目录下有两个文件
alist
、conf.yml
和一个文件夹dist
,在该文件夹下面执行下面的命令(Linux)
chmod +x alist 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反向代理,在配置文件中加入
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/; }
原文地址;https://www.nn.ci/archives/alist.html