什么是列表程序?我们平时都会使用各种各样的网盘程序来把我们的文件保存到互联网上,然后在需要的时候再从网盘中下载文件。一般情况下,浏览文件列表以及下载文件都必须先登录网盘账号,如果我们想要把文件分享给其他人下载,也需要创建一个分享链接,让别人从分享地址转存到自己的网盘中再进行下载,有时候可能会显得不太方便。这时候,列表程序便应运而生,列表程序通过再后台调用网盘的API接口来获取网盘中的文件,并解析出下载直链,从而能够让使用者能够无需登录就能够浏览文件列表,并且直接下载文件。另一方面,由于文件都是实际存储在网盘中,不占用服务器的存储空间,网盘提供的超大容量也可以让我们存储更多的资料。
现在有很多优秀的并且开源的列表程序,今天给大家介绍的是NextList,其演示地址是https://demo.326256.xyz/,根据项目介绍,目前支持文件存储、对象存储、Onedriver以及阿里云盘,除了支持直链下载、文件夹加密、视频播放、音乐播放以外,还可以直接在页面上上传和删除文件,十分的方便。
有了列表程序,我们还需要一台服务器,轻量应用服务器(TencentCloud Lighthouse)是新一代开箱即用、面向轻量应用场景的云服务器产品,助力中小企业和开发者便捷高效的在云端构建网站、小程序/小游戏、电商、云盘/图床以及各类开发测试和学习环境,相比普通云服务器更加简单易用,提供高带宽流量包并以套餐形式整体售卖基础云资源,将热门开源软件融合打包实现一键构建应用,是您使用腾讯云的最佳入门途径。
购买服务器
如果没有服务器的话,需要先购买一台腾讯云的轻量服务器。腾讯云经常举办各种活动,可以点击这里进入他们的活动页面进行购买,可以选择距离最近的区域购买,不过不想备案的话,可以选择境外的服务器(比如中国香港区域)进行购买。镜像的话,选择【官方镜像】下的【docker基础镜像】,实例套餐选择适合自己的,然后提交订单,付款即可。如果不选择【Docker基础镜像】,后面需要自行安装docker容器。
如果需要使用NextLIst的上传功能,建议购买中国香港地区的轻量服务器。目前NextLIst的上传功能走的服务器中转,即用户上传的文件,先经过服务器,再上传到网盘中,上传的速度受限于服务器的上传带宽(中国香港地区为30M)。 如果挂载的阿里网盘的话,由于腾讯云服务器和阿里网盘的网络因素,NextList的上传功能可能会受到影响
下图中是购买的中国香港地域的服务器,镜像选择Docker,如果不选择Docker的话,需要自行安装Docker环境。
安装docker环境
如果没有选择docker基础镜像,则需要自行安装docker镜像。这里假设使用的Ubuntu系统。安装docker的步骤如下
代码语言:txt复制sudo apt-get update
sudo apt-get install ca-certificates curl gnupg lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
安装NextList
本文采用Docker安装的方式。根据说明,需要分别安装mysql、nextlist后端服务以及nextlist前端服务。都是使用Docker安装,安装起来也很容易。
安装Mysql
代码语言:txt复制docker run --restart=always --name nextlist_db -v /data/db/nextlist:/var/lib/mysql -e MARIADB_ROOT_PASSWORD=nextlist -e MARIADB_USER=nextlist -e MARIADB_PASSWORD=nextlist -e MARIADB_DATABASE=nextlist -d mariadb
安装nextlist后端服务
在 /data/nextlist目录下创建config.yaml文件,内容如下
也可以把config.yaml放在别的目录,如果在别的目录下,则后面的docker启动nextlist的命令需要修改一下。
下述中配置文件的中xxxx项都是必填的参数,其参数值可以访问这里操作获取。其余的配置请看配置文件中的注释说明。
代码语言:txt复制port: 8081 # 采用docker部署的话,这个端口不能修改
database:
mysql:
url: nextlist_db
port: 3306
database: nextlist
username: nextlist
password: nextlist
driver:
name: onedriver
config:
refreshToken: "xxxxxxxxxxxxx" # 请替换为正确的refreshToken
clientID: "xxxxxxxx" # 请替换为正确的clientID
clientSecret: "xxxxxxxx" # 请替换为正确的clientSecret
redirectUrl: "https://tool.nn.ci/onedrive/callback"
key: "nextlist123" # 注意把这个换成一个复杂的字符串
path: /nextlist # 要挂载的onedriver目录
host: http://192.168.4.105:8081 # 后端服务的公网地址以及公网端口
site:
title: "NextList" # 站点标题
copyright: "本站资料仅供学习使用,请在下载后24小时内删除"
allowRegister: false # 改成false,只能注册一个用户
auth:
secret: "nextlist123" # 注意把这个换成一个复杂的字符串
driver.config.host为后端服务可以在公网上能够访问的地址,其端口号不一定是port的值,是容器中端口8081映射到宿主机的端口号。下面命令中docker的参数是-p 8081:8081,即映射到了宿主机的8081端口上。如果映射到了宿主机的别的端口上,此处要做相应的修改。
配置好配置文件以后,可以用下面的命令启动后端服务器
代码语言:txt复制docker run --detach --name nextlist --restart always --link nextlist_db -v /data/nextlist:/data mrlee326/nextlist -p 8081:8081 -c /data/config.yaml -d false
如果使用nginx反代nextlist后端的话,注意调整client_max_body_size的值,否则nginx会拦截上传的大文件
安装nextlist前端
启动了后端服务器以后,再来启动nextlist的前端服务。启动命令如下
需要把http://192.168.4.105:8081换成后端服务的地址,即上面配置的driver.config.host的值。
代码语言:txt复制docker run --detach --name nextlist_web --restart always --env "APIURL=http://192.168.4.105:8081" -p 80:80 mrlee326/nextlist_web
启动成功后,打开 ip:port,就可以访问了
注意事项
NextLIst的使用非常简单,但是默认情况下,NextList只管理通过在NextList页面中创建或者上传的文件,对于不是通过NextList上传的文件,即直接用Onedriver客户端上传的文件, 可以通过页面中的同步按钮来进行数据的同步。