简介
此版本不再维护,请使用新版:https://github.com/Xhofe/alist
AList是一款阿里云盘的目录文件列表程序,后端基于golang
最好的http
框架gin
,前端使用vue
和ant design
。没有专门学过前端,大佬轻喷?
暂时不会有太大的更新了,等阿里云盘正式发布之后再进行相关优化。更新计划:https://www.notion.so/Todo-3fdc2b0deec340e9aa9d86e6f603df72,有好的建议可以评论或在issue中告诉我。
测试了一下,在html文件头中加入<meta name="referrer" content="never">
,目前可以避开防盗链检测,后续未知。来自https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Referrer-Policy , 若要使用程序作为图床,需要在img标签中加入referrerPolicy="no-referrer"
。
由于阿里云盘加入了防盗链机制,目前所有不走服务器的预览均已失效,正在寻求解决办法,参考:https://developer.aliyun.com/article/59499 可能的方案:禁止浏览器的referer头,参考https://browsernative.com/http-referer-control-chrome/
1 |
|
本程序仅供学习研究使用!!!发现任何bug请提issue,部署上遇到问题欢迎添加我的qq[email protected]
。
更新的时候后端和前端文件都需要替换!!!!以及补上配置文件新的配置项!!!!
更新的时候后端和前端文件都需要替换!!!!以及补上配置文件新的配置项!!!!
更新的时候后端和前端文件都需要替换!!!!以及补上配置文件新的配置项!!!!
项目地址:
更新
2021.1.22
- 使用阿里云提供的文档预览服务
- 解决阿里云盘防盗链问题
- 修复观看视频时返回播放器不销毁的bug
- 优化了一些代码
2021.1.12
- 修复安卓微信端左侧被裁切的问题
- 更新dplayer至最新版本
- 优化跨域/信任域名,隐藏了一些配置信息
- 修改meta信息中的语言为中文(不会弹出翻译)
- 优化版本号比较
2021.1.6
- 前端了去除了map文件,减小了打包后的文件体积,仅有原来的1/3
- 增加了文档文件的预览,使用了kkFileView,部署在比较辣鸡的机器上,有能力可以自行搭建
- 增加了几乎所有文本文件的预览,可自行修改需要预览的后缀
- 可自定义视频自动播放
- 修改了移动端(宽度小于600px)时的视频高度
- 更换了二维码接口,原来的有时候特别慢
2020.12.31
- 自定义脚本
- 移动端文件列表优化
- 二维码分享(只在宽度小于600px的设备上显示)
- 去除对文件请求的缓存
- 更新提醒(可在配置文件中关闭)
2020.12.29
- 引入缓存,大幅优化了响应速度
2020.12.28
- 自定义页面底部链接
- 301跳转文件直链
- 体验优化
- 隐藏.password密码文件
- json绑定出错问题
预览
- https://alist.nn.ci (稳定版本,即Github Release的最新版本)
- https://alist.now.sh (开发版本,随着GitHub提交更新)
如何部署
首先第一步,Star本项目AList(bushi
获取refresh_token
为什么不直接使用access_token
,因为有效期只有两小时。
经Syc大佬的提醒,获取refresh_token
其实没这么麻烦,我们只需要登陆阿里云盘之后,打开开发者工具,切换到Application
选项卡,点开Local storage
,会有一个token
项,点开就可以看到refresh_token
了,此处感谢一下Syc大佬。
1 | # 过时内容 |
部署
使用gin作为静态资源服务器
- 前往AList Release下载对应系统的程序,解压得到一个运行文件
alist
- 前往AList-web下载打包好的前端,解压得到一个dist目录放到
alist
同级目录下 - 在同级目录下新建一个配置文件
conf.yml
,复制以下内容到该文件中:
1 | info: |
- 填入最开始获取到的
refresh_token
,然后自行修改配置文件中默认的值 - 现在的情况应该是,目录下有两个文件
alist
、conf.yml
和一个文件夹dist
,在该文件夹下面执行下面的命令(Linux)
1 | chmod +x alist |
ok,程序已经跑起来了。你可以cat log.log
看看有没有报错。或者访问http://ip:5244进行查看。
自定义静态资源服务器
与使用gin作为静态资源服务器操作步骤差不多,不同的地方在于:
- 下载AList-web的源码,修改
.env.production
中的VUE_APP_API_URL
为具体部署的后端地址,然后yarn && yarn build
自行部署 conf.yml
中的server.site_url
填写前端部署的域名或者默认为’*’,需要正确填写,否则会报错。- 建议直接使用gin作为静态资源服务器,使用nginx的话因为路由使用了history模式(没有#号好看一点),所以还需要设置一下nginx:
1 | location / { |
参考:https://router.vuejs.org/zh/guide/essentials/history-mode.html
反向代理
程序默认监听5244端口,要实现https访问,需要使用nginx反向代理,在配置文件中加入
1 | location / { |
常见问题解答
- 如何给文件夹设置密码?
在要加密的目录下新建一个名称为.password-要设置的密码
的文件或者文件夹就可以了。 - 如何设置根目录?
修改配置文件中的ali_drive.root_folder
为想要设置的文件夹的file_id
即可。 - 如何自定义网页底部链接?
修改配置文件中的footer_text
和footer_url
为要设置的内容,或者不填则不会显示。 - 怎么复制文件直链?
进入文件预览,可以预览的文件复制按钮在右上角,不可预览的复制按钮在正中间。 - 修改网站icon?
替换掉dist
目录下的favicon.ico
即可。 - 为什么新上传的文件不显示/删除了的文件还在?
为了提高响应速度,对文件的列表是有缓存的,默认开启。 - 如何开关缓存?
配置文件中的cache.enable
设置为true
或false
即可,打开会占用更多的内存,但会大幅优化使用体验,默认打开。经测试下载地址是会失效的,所以请自行设置缓存的时间。下个版本将给文件去掉缓存,只缓存文件夹。更新文件的时候可以手动刷新缓存。 - 如何刷新缓存?
程序会自动按照配置文件中的cache.cleanup_interval
自动清理过期缓存,如需手动刷新,手动访问后端地址/cache/配置文件中设置的刷新密码
,如https://alist.nn.ci/cache/alist
。 - 如何更新?
前端:下载新的打包好的文件,删掉原来的dist文件夹,解压新的dist放入原来的位置即可。后端:pkill alist
停掉老的进程,删除旧的alist
,下载新的alist,查看配置文件,补上新的配置项,再次运行即可。 - 要安装
Windows
版本?
自行编译,或者在Github Actions可以找到每次提交的build。
Buy me a coffee
If you are using this project and happy with it or just want to encourage me to continue creating stuff,buy me a coffee by click this 。Thanks:
- zsbai :请一杯奶茶?
- 白鹭
- 不知名
- 永胜
- 本文标题:阿里云盘列表AList部署教程(V0)
- 本文作者:Xhofe
- 创建时间:2020-12-25 14:08:00
- 本文链接:https://nn.ci/posts/alist-v0.html
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!