Skip to content
JoyLinksPublic

About

文件自动归集

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

28 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

文件自动归档

JOYZL Watcher 用于将分布在多个设备或计算机中的文件,自动上传归集到服务器中。 工作原理为监视指定目录中生成的新文件, 如果文件名符合指定格式(可配置正则表达式), 则从文件名中提取代码(可配置正则表达式提取代码字符,例如产品编号), 然后上传到指定服务器。

适用性

适用报告和结果性文件, 例如:工厂检验设备输出的检验结果性文件,目录或文件名中具有产品编号, 并且文件生成后不再修改。

不适用经常性修改的文件, 例如:增量写入的日志文件、关系数据库的数据文件, 也不适用于视频等大型文件。

文件上传

上传文件通过标准的 HTTP POST 请求,以 multipart/form-data 格式上传, 其中包含 number 参数值为配置的终端编号, code 参数值为从文件名中提取的代码, file 为文件字节内容; WEB 服务器接收并保存文件后返回 200 OK 即表示成功, 返回其它任何状态码均表示失败,会稍后重试上传。

JOYZL Server 内置了文档归集服务端的功能实现,可作为文件服务端部署。

配置文件

watcher.properties 为监视程序配置文件。 其中设置监视的目录(WATCH),提交文件的服务器(HTTP_SERVER), 文件匹配模型配置文件(MODEL),客户端编号(NUMBER); 软件界面会显示这些内容,双击可更改配置。 界面关闭后监视程序会在后台运行。

LOG_EXPIRES=30
WATCH=D\:\\JOYZL SCADA DEMO\\test
HTTP_SERVER=http\://192.168.1.100/archive/file
TITLE=JOYZL Watcher
MODEL=patterns\\ANY.xml
UPLOAD_EXPIRES=3600
STABLE_EXPIRES=3600
LOG_LEVEL=3
NUMBER=NP003

匹配模型

patterns 文件夹中是可选用于识别文件的配置文件。 文件识别配置文件以XML格式组织,格式如下所示。

<model>
	<name>任意文件</name>
	<file>
		<name>(?:^|[\\/])([\x20-\x7E]+)\.\w+$</name>
		<code>.*?([^\\/]+)\.</code>
		<example>2025-10-22\YDA13115101GSK216364.ext</example>
	</file>
	<file>
	...
	</file>
</model>

每个匹配模型可指定多个文件(file)元素,其中必须包含 name 和 code 元素,元素内容分别为文件名匹配和提取代码的正则表达式。 当监视程序发现新文件时,会从指定的监视目录开始,将整个相对路径用于执行正则表达式匹配。 如果要同时兼容 Windows 和 Linux 操作系统,请确保正则表达式适配两种路径分隔符。

匹配单个文件: 如果匹配模型指向文件名,则按单个文件匹配。

假设监视目录为 D:\reports
正则表达式匹配文件名并从文件名提取编号(排除扩展名)
某程序在目录中生成了报告文件 D:\reports\20251208\JOYZL-1234567890.pdf
相对路径为 20251208\JOYZL-1234567890.pdf
首先执行文件名匹配,使用 name 中的正则表达式
然后执行代码提取,使用 code 中的正则表达式
如果匹配和提取均成功,文件排入待上传队列。

匹配多个文件: 如果匹配模型指向目录名,则会匹配目录下的所有文件。

假设监视目录为 D:\reports
正则表达式匹配目录名并以目录名为编号
某程序在目录中生成了两个报告文件 D:\reports\JOYZL-1234567890\r1.pdf 和 D:\reports\JOYZL-1234567890\r2.pdf
相对路径为 JOYZL-1234567890\r1.pdf 和 JOYZL-1234567890\r2.pdf
首先执行文件名匹配,使用 name 中的正则表达式
然后执行代码提取,使用 code 中的正则表达式
如果匹配和提取均成功,两个文件排入待上传队列
两个文件关联同一个编码 JOYZL-1234567890

监视行为

  • 仅上传监视软件启动之后产生的文件,并且文件名符合指定的规则;
  • 监视软件会检查文件是否写入完成,因此会等待文件稳定后开始上传;
  • 如果上传之后文件被修改,监视软件不会再次上传;
  • 如果上传之前文件被删除,监视软件会忽略此文件;
  • 如果已上传文件被删除,监视软件忽略此行为。

发现与管理

可通过UDP端口发现局域网中部署的所有 JOYZL Watcher 程序; 可通过UDP端口远程配置 JOYZL Watcher 程序参数; 这为大量部署时提供维护配置便利。

JOYZL SCADA Station 客户端集成了发现与远程配置桌面工具, 访问 scada.joyzl.com 获取更多信息。


www.joyzl.com

本软件根据 Apache License 2.0 开源,详见 LICENSE 文件。

About

文件自动归集

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages