v2.0 介绍

经过一个多月的开发,v2.0 终于完成,迎来了测试,以下是对 v2.0 的整体介绍

GUI

v2.0 迎来了 GUI,无需再每次登录到 nas 机器进行命令输入了。

开启 GUI 的方式:

1、使用 docker(推荐)

使用 docker 最大的好处就是不用关心 nodejs 环境问题,作者会实时在 docker 镜像更新所需 nodejs 环境,只要你会配置 docker 就可以了

以下是 docker-compose 的配置

version: '3'

services:
  docker:
    image: likun7981/hlink:latest # docker镜像名称
    restart: on-failure
    ports: # 这个端口映射
      - 9090:9090
    volumes: # 这个表示存储空间映射
      - /share:/share
    environment:
      - HLINK_HOME=/share/data/hlinkDocker # 这个是环境变量

重点介绍下 docker 配置

/share:/share表示把宿主机环境(冒号左边)的/share目录映射到 docker 环境(冒号右边)下的/share目录

使用者可以根据自己的路径不同进行调整。 那么问题来了,我自己到底该映射哪个目录?回答这个问题前,我们先了解/share应该要包含哪些目录

  1. 包含你的下载目录(也就是你的源文件的目录)
  2. 包含你的影音库目录(也就是你要硬链到目标地址目录)
  3. 包含 hlink 所需的存储配置的目录(也就是 environment 中HLINK_HOME的地址)

找到这三者的公共父目录映射就可以了,最好保持宿主环境和 docker 环境的映射路径一致

又有人要问了公共父目录是什么?这个...如果这样说你都理解不了,那我也帮不了你了

对于威联通用户直接点击ContainerStation > 创建 > 创建应用程序,把上面的配置(需要删除里面的注释)粘贴进去点击创建就可以了

最后说一句,docker 日志里面打印的 ip 是 docker 自己的虚拟 ip,威联通创建 docker 默认网络是使用的桥接模式,所以你访问地址就是:http://威联通机器的ip:9090

2、使用命令行开启

服务开启,会生成一个后台允许的进程,并且会自动添加开机启动

hlink start

打开成功你会看到一下界面,直接访问页面地址即可开始玩耍了,gui 使用就比较简单了,不详细介绍了

服务关闭

hlink stop

关闭成功你会看到一下界面

配置不兼容变更

1. 只能使用配置文件

v1.0是这样的
- hlink -e=xxx,xxx /path/to/sourcePath  /path/to/destPath

v2.0是这样的,主要的配置都通过config文件传入
+ hlink /path/to/config.mjs

hlink@v2.0不再支持通过命令行录入源地址、目标地址、配置,主要原因是

  1. 通过命令行录入地址和配置无法追踪,不好保证 hlinkhlink prune进行配置对齐,造成不必要的麻烦
  2. 通过命令行录入散乱,不好保留

其实作者不再推荐使用命令行,而是直接使用 GUI 即可完成之前所有的事

2. 部分配置更名

就以下这么多

// 配置文件
export default {
-  saveMode: 0,
+  keepDirStruct: true,

-  includeExtname: [],
+  include: [],

-  excludeExtname: [],
+  exclude: [],

-  source: '',
-  dest: ''

+  pathsMapping: {
+     source的值: dest的值
+  }
}

新增功能

上面介绍了includeExtname变为了includeexcludeExtname变为了exclude

这么更名是有原因的,之前的只支持后缀名的配置,现在不一样了,还支持更高级的配置

详情可以看issue#12

  1. include 和 exclude 可以同时配置了,不再分优先级

相当于是 include规则 - exclude规则 = 最终规则

include留空表示包含所有文件

  1. include 和 exclude 都支持高级配置

为了兼容之前后缀的配置如果还是按照之前的配置,就是表示后缀名 像下面这样

export default {
  include: ['mp4', 'mp3'],
}

但是你也可以这样配置

export default {
  include: {
    globs: ['**/abc/**'], // 所有包含abc文件夹的路径
    exts: ['mp4', 'mp3'],
  },
  exclude: {
    globs: ['**/bcd/**'], // 所有包含bcd文件夹的路径
  },
}

globs 你可以配置所有 glob 表达式什么是 glob?,中文的介绍网络上随意找了一篇Glob 语法及解析

你可以通过 globs 表达式支持的所有规则,来定制你的 include 和 exclude。

如何体验

  • npm 安装: npm i -g hlink

  • docker 安装: 参考上面说明安装 docker 镜像likun7981/hlink

以上就是所有 v2.0 的改动介绍了