OneList有python版本,但是在整体性能上有点瑕疵,所以大佬萌咖大佬就开发了go版本OneList,基于Golang的性能更好,效率更高,多盘并发缓存等众多好处……
这篇文章,我们就来说说如何利用宝塔面板来安装部署OneList,go版本OneList同时支持国际版、个人免费版(家庭版)、中国版(世纪互联)及多网盘绑定,还是值得试试的。
具体的安装和部署
1、前言
gtihub:https://github.com/MoeClub/OneList/tree/master/Rewrite
demo:http://aa.fdao.xyz
2、go环境
宝塔面板搭建go环境,可以看之前的文章,如下:
宝塔面板Linux环境-安装Golang:Go语言环境安装以及程序如何运行
3、准备
- 宝塔面板最新版本
- go语言环境安装好,不会看上面。
- 准备好一个解析好的域名
- 新建网站
- Nginx安装好
4、授权认证
【国际版、个人版(家庭版)】,复制链接打开!
https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=78d4dc35-7e46-42c6-9023-2d39314433a5&response_type=code&redirect_uri=http://localhost/onedrive-login&response_mode=query&scope=offline_access%20User.Read%20Files.ReadWrite.All
【中国版(世纪互联)】。
https://login.chinacloudapi.cn/common/oauth2/v2.0/authorize?client_id=dfe36e60-6133-48cf-869f-4d15b8354769&response_type=code&redirect_uri=http://localhost/onedrive-login&response_mode=query&scope=offline_access%20User.Read%20Files.ReadWrite.All
注意:授权后会获取一个localhost
开头打不开的链接,这里复制好整个链接地址,包括localhost
保存到一个记事本中备用。具体看图:
5、部署项目
安装OneList,这里是把项目方在/opt
目录下面,你也可以放置在别的目录下!
#新建并进入OneList目录 mkdir /opt/OneList && cd $_ #64位系统下载 wget https://raw.githubusercontent.com/MoeClub/OneList/master/Rewrite/amd64/linux/OneList #32位系统下载 wget https://raw.githubusercontent.com/MoeClub/OneList//master/Rewrite/i386/linux/OneList #arm架构下载 wget https://raw.githubusercontent.com/MoeClub/OneList/master/Rewrite/arm/linux/OneList #给予权限 chmod +x OneList
5.1 生成配置文件
下载好项目之后,我们开始用命令生成配置文件,命令如下:
#国际版,将url换成你上面复制的授权地址,包括http://loaclhost。 ./OneList -a "url" -s "/onedrive01" #个人版(家庭版),将url换成你上面复制的授权地址,包括http://loaclhost。 ./OneList -ms -a "url" -s "/onedrive02" #中国版(世纪互联),将url换成你上面复制的授权地址,包括http://loaclhost。 ./OneList -cn -a "url" -s "/onedrive03"
提示Success! Add config. '/path/to/config.json'
信息,则添加成功。具体如图:
5.2 注意:
- 授权url地址只能用一次,超过需要重新授权。
- 命令中的/onedrive01参数为指定网盘地址后缀,比如http://domain.com/onedrive01。
- 授权多个网盘的话,重复授权多次即可,参数均会添加到一个配置文件,且后缀不能重复。
- 地址后缀填错了的,可以稍后在配置文件中修改。
5.3 配置文件实例
具体的配置实例如下:
[ { // 如果是家庭版或者个人免费版, 此项应为 true. "MSAccount": false, // 如果是中国版(世纪互联), 此项应为 true. "MainLand": false, // 授权令牌 "RefreshToken": "1234564567890ABCDEF", // 单配置文件中,此项要唯一.将此OneDrive中设置为`RootPath`目录映射在`http://127.0.0.1:5288/onedrive` 下. // (只推荐一个盘位的时候使用根目录"/".) "SubPath": "/onedrive", // 读取OneDrive的某个目录作为根目录. (支持根目录"/") "RootPath": "/Test", // 隐藏OneDrive目录中的文件夹和文件, 条目间使用 "|" 分割. (跳过缓存设置的条目.) "HidePath": "/Test/Obj01|/Test/Obj02", // 使用用户名和密码加密OneDrive目录. 目录和用户名密码间使用 "?" 分割, 用户名密码使用 ":" 分割, 条目间使用 "|" 分割. 无效条目将跳过. "AuthPath": "/Test/Auth01?user01:pwd01|/Test/Auth02?user02:pwd02", // 缓存刷新间隔.(所有项目中的刷新时间取最小值为有效刷新间隔) "RefreshInterval": 900 } ]
这里注意,挂载多个盘符的时候,SubPath
参数请不要为/
,单个网盘建议为/
。
5.4 运行OneList
运行以下命令,来启动项目运行。
#下载默认的index.html主题,与config.json同目录,即本文默认的/opt/OneList wget https://raw.githubusercontent.com/MoeClub/OneList/master/Rewrite/index.html -P /opt/OneList #监听8000地址,自行修改 /opt/OneList/OneList -bind 0.0.0.0 -port 8000
浏览器打开<ip:端口>访问即可,如果你挂载网盘的时候SubPath
为/
,那么直接通过根目录查看,如果为/onedrive1
,那么通过ip:端口/onedrive1
查看,如果该路径不存在,则会提示No Found.
。如果目录里面没有文件也会显示No Found.
。打开效果如图:
6、后台运行及开机自启
以上的全部完成之后,你就可以打开onelist了,但是不能后台运行,所以我们这设置下如何后台运行。
6.1 方法1
# /path/to/OneList 为OneList的完整路径 # 后台运行 nohup /path/to/OneList -bind 0.0.0.0 -port 80 >/dev/null 2>&1 & # 开机自启并后台运行 编辑 /etc/crontab 文件, 并添加下面一行并多按几个回车. (有些系统不留空行会出现意外) @reboot root nohup /path/to/OneList -bind 0.0.0.0 -port 80 >/dev/null 2>&1 &
6.2 方法2
新建一个简单的systemd
配置文件,适用CentOS 7
、Debian 8+
、Ubuntu 16+
。使用命令:(将以下代码一起复制到SSH运行,注意默认端口为8000,可修改!)
此处为隐藏的内容 发表评论并刷新,方可查看
发表评论
6.3 卸载
如果未设置开机自启,直接删除onelist就可以了。命令如下
rm -rf /opt/OneList
设置过开机自启,使用如下命令卸载
systemctl stop onelist systemctl disable onelist rm -rf /opt/OneList /etc/systemd/system/onelist.service
7、设置域名访问
宝塔面板新建网站,网站设置,“芳香袋里”,具体看图:
这样设置后,就可以用域名打开了,如果要设置SSL,请先关闭daili,申请好证书在开启,即可。
8、最后
go版本的目录列表程序打开速度确实很快,但安装起来还是很麻烦的,OneList的使用命令如下:
Usage of OneList: -a string // 初始化配置文件,添加新配置 Setup and Init auth.json. -bind string // 绑定IP地址(公网: 0.0.0.0) Bind Address (default "127.0.0.1") -port string // 绑定端口(HTTP:80) Port (default "5288") -s string // 设置 SubPath 项, 需要与 -a 一起使用. Set SubPath. [unique per account] (default "/") -c string // 配置文件 Config file. (default "config.json") -t string // Index.html 目录样式文件 Index file. (default "index.html") -cn // 开关 // 授权中国版(世纪互联), 需要此参数. OneDrive by 21Vianet. -ms // 开关 // 授权个人版(家庭版), 需要此参数. OneDrive by Microsoft.
参考资料:
- https://github.com/MoeClub/OneList/tree/master/Rewrite
- https://www.moerats.com/archives/1016/