AList 基于阿里云盘的个人网盘目录列表程序

今天再给大家推荐一个利用阿里云盘来搭建的个人分享网盘程序!

相对于Teambition 主要是利用Cookie模拟用户登陆,然后调用相关接口。

本文代码使用的是标准的OAuth2实现接口的调用,相对来说更稳定一些!

开源仓库

原作者:https://github.com/Xhofe/alist

下面的项目是博主为了部署方便整合了一个仓库,且支持了Docker部署!

https://github.com/malaohu/alist-oneclick-deploy

常见编译

golang打包后不同的的可执行文件适用不同的平台!以下供大家参考!

  • darwin/386:对应 Mac x86

  • darwin/amd64:对应 Mac amd64

  • linux/386:对应 Linux x86

  • linux/amd64:对应 Linux amd64

  • Windows/386:对应 Windows x86

  • Windows/amd64:对应 Windows amd64

准备工作

获取Token

登陆阿里云盘,打开控制台获取!

AList 基于阿里云盘的个人网盘目录列表程序,其它源码,Go语言,第1张

目录指定

该仓库默认是根目录所有文件都可分享,如果你只想分享某一个目录里的文件,那么需要获取目录ID。

AList 基于阿里云盘的个人网盘目录列表程序,其它源码,Go语言,第2张

配置文件

以下是具体的配置文件内容介绍!按需修改!

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;
    }

自动

这里主要针对小白童鞋!可执行下方的命令简单的部署 !

git clone https://github.com/malaohu/alist-oneclick-deploy.git
cd alist-oneclick-deploy
sh install.sh

Docker

#下载镜像
docker pull malaohu/alist
 
#启动镜像
docker run -d --net=host --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

演示地址

https://alist.nn.ci/

常见问题

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。

转载请说明出处 内容投诉
九牛网 » AList 基于阿里云盘的个人网盘目录列表程序

发表评论

欢迎 访客 发表评论

定制开发服务!

技术支持 联系我们