小萌博客 - 既是个人原创，又是汇聚分享 - immoe.org - 阿里云盘
AList 基于阿里云盘的个人网盘目录列表程序
全篇转载自 @如有乐享 ，由 小萌 进行编辑，本文仅作存档使用本文核心内容来自 @nn.ci 博主，博主亲测可行，然后优化部署方式！发布该文！今天给大家推荐一个利用阿里云盘来搭建的个人分享网盘程序！本文代码使用的是标准的OAuth2实现接口的调用，相对来说更稳定一些！开源仓库原作者：https://github.com/Xhofe/alist下面的项目是马甲大佬为了部署方便整合了一个仓库，且支持了Docker部署！https://github.com/malaohu/alist-oneclick-deploy常见编译golang打包后不同的的可执行文件适用不同的平台！以下供大家参考！darwin/386：对应 Mac x86darwin/amd64：对应 Mac amd64linux/386：对应 Linux x86linux/amd64：对应 Linux amd64Windows/386：对应 Windows x86Windows/amd64：对应 Windows amd64准备工作获取Token登陆阿里云盘，打开控制台获取！目录指定该仓库默认是根目录所有文件都可分享，如果你只想分享某一个目录里的文件，那么需要获取目录ID。配置文件以下是具体的配置文件内容介绍！按需修改！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: #自定义js脚本,可以是脚本的链接，也可以直接是脚本内容,如document.querySelector('body').style="background-image:url('https://api.mtyqx.cn/api/random.php');background-attachment:fixed" autoplay: true #视频是否自动播放 preview: url: https://view.alist.nn.ci/onlinePreview?url= #extensions中包含的后缀名预览的地址，默认使用了kkFileView，可以自行搭建 pre_process: [base64,encodeURIComponent] #对地址的处理，支持base64,encodeURIComponent,encodeURI extensions: [doc,docx,ppt,pptx,xls,xlsx,pdf] #使用上面的url预览的文件后缀 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] #要预览的文本文件的后缀，可以自行添加 max_size: 5242880 server: port: "5244" #程序监听端口 search: false static: dist site_url: '*' #建议直接填*,若有信任域名要求,可填写其他具体域名,逗号分割 cache: enable: true #是否开启缓存 expiration: 60 #缓存失效时间(单位:分钟) cleanup_interval: 120 #清理失效缓存间隔 refresh_password: password #手动清理缓存密码 ali_drive: api_url: https://api.aliyundrive.com/v2 root_folder: root #根目录 refresh_token: #必填！！！ max_files_count: 3000 #一次性最大文件数量NGINX配置如果绑定域名，可用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; }项目部署手动1）首选需要准备一台服务器。2）由于我们部署的是golang编译后的文件，所有不用预装golang环境！3）下载开源项目，根据你不同的系统选择不同的编译后的可执行文件（文章上方有介绍）！前往AList Release下载对应系统的程序，解压得到一个运行文件alist前往AList-web下载打包好的前端，解压得到一个dist目录放到alist同级目录下在同级目录下新建一个配置文件conf.yml，复制上面的配置内容，按需修改！4）启动项目chmod +x alist nohup ./alist > log.log 2>&1 &5）如果想绑定域名，直接修改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; }自动这里主要针对小白童鞋！可执行下方的命令简单的部署 ！提醒，该脚本暂时只适用于Linux x86。其他环境自己修改一下脚本。git clone https://github.com/malaohu/alist-oneclick-deploy.git cd alist-oneclick-deploy sh install.shDocker提醒，该脚本暂时只适用于Linux x86。其他环境自己修改一下Dockerfile，然后自己发布一下。关于Docker请参考小白教程： 【小白教程】Docker安装使用教程，以及常用命令！#下载镜像 docker pull malaohu/alist #启动镜像 docker run -d --name alist malaohu/alist [token] [folder] #后面的俩个参数分别是TOKEN 和 要分享的目录 #例如： docker run -d --name alist malaohu/alist 5972ed0bd4f54d3d974fa41a8231e root 如果启动Docker容器后，如果无法访问网络，那么在启动命令中加入 --net=host 参数。 例如： docker run -d --net=host --name alist malaohu/alist 5972ed0bd4f54d3d974fa41a8231e root常见问题Q：如何给文件夹设置密码？A：在要加密的目录下新建一个名称为.password-要设置的密码的文件或者文件夹就可以了。Q：如何设置根目录？A：修改配置文件中的ali_drive.root_folder 为想要设置的文件夹的file_id即可。Q：如何自定义网页底部链接？A：修改配置文件中的footer_text和footer_url为要设置的内容，或者不填则不会显示。Q：怎么复制文件直链？A：进入文件预览，可以预览的文件复制按钮在右上角，不可预览的复制按钮在正中间（backend_url必须设置正确）。Q：修改网站icon？A：替换掉dist目录下的favicon.ico即可。Q：为什么新上传的文件不显示/删除了的文件还在？A：为了提高响应速度，对文件的列表是有缓存的，默认开启。Q：如何开关缓存？A：配置文件中的cache.enable设置为true或false即可，打开会占用更多的内存，但会大幅优化使用体验，默认打开。经测试下载地址是会失效的，所以请自行设置缓存的时间。下个版本将给文件去掉缓存，只缓存文件夹。更新文件的时候可以手动刷新缓存。Q：如何刷新缓存？A：程序会自动按照配置文件中的cache.cleanup_interval自动清理过期缓存，如需手动刷新，手动访问后端地址/cache/配置文件中设置的刷新密码，如https://alist.nn.ci/cache/alist。Q：如何更新？A：前端：下载新的打包好的文件，删掉原来的dist文件夹，解压新的dist放入原来的位置即可。后端：pkill alist 停掉老的进程，删除旧的alist，下载新的alist，查看配置文件，补上新的配置项，再次运行即可。Q：要安装Windows版本？A：自行编译，或者在Github Actions可以找到每次提交的build。