A-A+

alist本地+OneDrive世纪互联=本地webdav:使用nssm把alist.exe封装成服务

2023年06月20日 VPS评价 等您评论

一、一些废话

1、关于OneDrive世纪互联

众所周知国内由世纪互联运营的OneDrive关闭了api,导致像alist和raidrive这样优秀的第三方软件不能直接挂载OneDrive。

虽然只能用OneDrive官方app,不过用来做手机、电脑之间的同步盘还是不错的,毕竟数据中心在国内,能跑满带宽。

2、关于alist

这个也不用多介绍了,一般部署在服务器或者nas上。
虽然世纪互联版OneDrive不能像国际版OneDrive使用api挂载,不过alist提供了另外一个挂载方案:
https://alist.nn.ci/zh/guide/drivers/onedrive.html

提示:
如果你的账号不支持 API,(比如学校账号没有验证管理员,或者管理员禁用了 API),那么你也可以通过 WebDAV 挂载。 有关详细信息,请参阅 WevDAV 页面。

通过alist提供的工具获取到的webdav url:
https://xx-my.sharepoint.xx/personal/xx_xx_xx/Documents
账号密码同OneDrive。

不过这个url貌似只能用于alist,raidrive用不了。
而且这种方法挂载的OneDrive的传输速度取决于alist服务器的带宽,消耗服务器流量
所以就有了下面要介绍的玩法。

二、alist本地

1、下载安装alist

部署到nas的和路由器的就先不说了,因为我没有。。。
下载最PC使用的版本alist-windows-amd64.zip(根据你内核来):
https://github.com/alist-org/alist/releases
解压后得到alist.exe,使用cmd运行它,然后可以看到使用参数说明:

首先输入 alist admin 查看管理账号密码
然后输入 alist server 启动服务,之后就可以在浏览器里输入http://127.0.0.1:5244/本地访问了
注意:这个cmd不能关闭,否则服务也关了。

2、挂载世纪互联版OneDrive

按照alist官方文档挂载世纪互联版OneDrive:
https://alist.nn.ci/zh/guide/drivers/webdav.html#%E5%AF%86%E7%A0%81

测下速,还不错:
不过这个cmd要一直挂着不能关,有点难受,下面方法解决它

三、将alist.exe封装成服务

按上述步骤配置好alist后,使用nssm把alist.exe程序封装成服务,开机自动启动,就不用每次都用cmd了,简单便捷。方法如下:

1、官网下载nssm

nssm貌似很久不更新了,但是不影响使用,我下载的是NSSM 2.24-101-G897C7AD (2017-04-26)
https://nssm.cc/download
下载好得到nssm.exe程序。

2、开始封装

封装前关闭alist.exe,就是那个cmd
在cmd中运行nssm,可以看到nssm的运行参数说明:

D:\nssm64>nssm
NSSM: The non-sucking service manager
Version 2.24-101-g897c7ad 64-bit, 2017-04-26
Usage: nssm <option> [<args> ...]
To show service installation GUI:
        nssm install [<servicename>]
To install a service without confirmation:
        nssm install <servicename> <app> [<args> ...]
To show service editing GUI:
        nssm edit <servicename>
To retrieve or edit service parameters directly:
        nssm dump <servicename>
        nssm get <servicename> <parameter> [<subparameter>]
        nssm set <servicename> <parameter> [<subparameter>] <value>
        nssm reset <servicename> <parameter> [<subparameter>]
To show service removal GUI:
        nssm remove [<servicename>]
To remove a service without confirmation:
        nssm remove <servicename> confirm
To manage a service:
        nssm start <servicename>
        nssm stop <servicename>
        nssm restart <servicename>
        nssm status <servicename>
        nssm statuscode <servicename>
        nssm rotate <servicename>
        nssm processes <servicename>

输入:nssm install
弹出nssm图形界面,

path选项选择alist.exe,Service name 会自动获取,Arguments填写server,然后点 Install service 安装服务。
安装完成后,在cmd中输入 nssm start alist 或者 nssm restart alist 启动alist服务,
打开任务管理器查看这个alist服务是否在运行,此时可以关闭nssm的cmd了。

3、alist官方图形界面程序

如果以上步骤你搞不懂,可以使用alist作者提供的图形界面程序:
也不贵,点开就能用。

四、alist的webdav

参考alist的使用文档:
https://alist.nn.ci/zh/guide/webdav.html#webdav-配置
不多赘述了,alist的webdav玩法很多了

总结

1、安装本地alist.exe
2、使用nssm把alist.exe封装成服务
类似nssm的程序还有winsw(开源,还在更新)不过我没用过
3、参考:
alist官方文档
https://www.jianshu.com/p/7f31ecebda28
nssm在服务器上的使用超详细说明。

给我留言