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环境,可以看之前的文章,如下:
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/



