前言

最近发现一个有意思的项目 alist,官方定义是一个支持多种存储的文件列表程序,而且它使用的新的框架 SolidJS;没有虚拟dom,直接操作原生dom,性能和 Vanilla 相同,于是拿来用了一下,发现解决了我的一个痛点。

当我电脑下载完视频后,这些视频文件往往会很多或者文件很大,但是这些文件属于待确认文件,我可能简单略了一遍后就会将它们删除,所以,我不想移动到手机上去查看,但是电脑上看又不是很便捷,特别上晚上想躺床上的时候,操作电脑就不是很方便了。

之前我是利用windows自带的文件共享功能Samba来远程查看的,通过手机的文件管理器SMB连接到电脑,然后查看文件,但是这种方式非常痛苦,首先它的速度非常慢,而且对于快速查看视频,很容易播放无响应,必须重新打开文件才可以。

但是用了alist,它的视频是在线的,文件的读取和反馈都是通过服务器实现,服务器就是我的电脑,所以我在拖拽查看的时候,体验堪比在电脑上操作了,秒开的体验,配置5g的wifi带宽,完全满足需要。

为此记一下笔记,分享给跟我一样有这种需求的人(主要是买不起NAS)。

教程

alist下载

github:alist

使用文档:文档

注意不要看错文档了,我们看v3的,也就是我提供的这个地址的。

进入到github仓库,我们找到 Releases 下载windows版的包。

下载完毕后我们解压到电脑磁盘目录,我个人把他放到了专门存放代码的自建code目录下了,这个我觉得可以分类为软件,看自己想法。

初次启动并挂载磁盘

文档我们查看 安装 - 手动安装;找到windows的教程,官方提供了这么一条命令:

.\alist.exe server

这个用于启动服务,此时我们可以看到启动的是当前目录下的alist.ext文件。

输入完后我们可以看到这么一个提示:start server @ 0.0.0.0:5244

说明它用的是本地服务,5244是它的默认端口,这个是可以改动的,这个自己去看文档吧。

我们通过访问:http://localhost:5244 就能进入到站点页面了。

但是需要登录,所以我们还需要通过另一段命令获取到默认的管理员账号密码

.\alist.exe admin

可以看到输出了username和password,这个就是账号密码了,默认密码是随机字符的,我这个其实是自己改过了,不用纠结是否相同。

输入账号密码进入后台我们直奔管理后台的存储菜单,点击后我们就可以添加本地存储了。

这里我以电脑的F盘为例,我希望挂载整个F盘,设置如下:

注意根文件夹路径才是磁盘路径,挂载路径指的是前端路由的路径,不要搞混了。

设置完毕后保存,我们就可以在通过访问:http://localhost:5244看到刚刚挂载的目录了。

至此我们测试上基本就没啥问题了,现在我们需要解决几个问题:

  • 程序保活,也就是开机自启
  • DNS本地代理,这样就可以通过域名访问
  • 配置环境变量,这样可以直接通过alist命令来控制程序

程序保活:开机自启

官方提供了两个vbs脚本,一个是启动,一个是停止,我们只需要将这两个脚本放置在和alist.exe同级目录即可,然后将启动脚本放置在windows的启动计划中即可。

官方有提供脚本下载,嫌麻烦自己创建一个text文件,然后把代码粘贴进去,把文件名改一下就行了,文件后缀为:.vbs

我的脚本名为:alist_start.vbs

右键创建一个快捷方式,然后 win + r调出运行,输入:shell:Startup 回车。

会打开一个这样的文件夹:C:\Users\你的用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

我们将刚刚创建的快捷方式,剪切到这个文件夹中即可。

此时我们的程序会在系统重启后自动启动。

DNS本地代理

访问alist站点,本机电脑可以通过:http://localhost:5244访问,但是其他设备就需要通过主机ip+端口访问了。

略有一些不方便,有没有办法通过域名访问,比如通过nas.com:5244访问呢?

这个就需要看使用的路由器是否支持DNS代理了,我的路由是爱快,它是支持这个功能的:

添加完毕后,我们在局域网内,都可以通过nas.com:5244来访问页面了。

比较可惜的是还是需要增加端口号,爱快不支持带端口,暂时就这样吧。

配置环境变量

到这里我们就要考虑下alist的一些方便的操作了,如果我们想要停止这个程序,只能运行我们之前创建的停止的vbs脚本,双击运行即可。

但是有些不方便,我看到官方在底部有说:

对于所有平台,您可以使用以下命令来静默启动、停止和重新启动。 (v3.4.0 及更高版本)
# 携带`--force-bin-dir`参数启动服务
alist start
# 通过pid停止服务
alist stop
# 通过pid重启服务
alist restart

但是此时我们在cmd或者PowerShell调用alist得到的是一个报错,因为我们还没有将其设置为全局变量,这种用法是不行的。

为此,我们在我的电脑右键 -> 属性 -> 高级 -> 环境变量 -> Path

点击编辑,新建一条程序目录的path路径:

确定后在下面的系统变量区域新建一个系统变量:

确定后,关闭所有的命令行程序,然后重新打开,输入alist就不会再报错了,会返回一段命令提示:

这就表示我们的设置成功了。

完事后我们还需要更新下vbs脚本内容,不需要再通过路径去触发了。

启动脚本:

Dim ws
Set ws = Wscript.CreateObject("Wscript.Shell")
ws.run "alist start",vbhide
Wscript.quit

停止脚本:

Dim ws
Set ws = Wscript.CreateObject("Wscript.Shell")
ws.run "alist stop",0
Wscript.quit

此时完成,现在当我们有需要时,就可以通过alist stop来停止程序的运行,比如更新下程序。

分类: 教程 标签: samba局域网共享alistSMB

评论

暂无评论数据

暂无评论数据

目录