新闻中心

PRESS CENTER 纵横智控
你的位置: 首页 新闻 技术应用
纵横智控

网关存储节点之为什么要写入读取文件?如何做?-EG网关

2025-09-15 11:00:40 阅读: 发布人:纵横智控

核心概念:为什么网关需要读写文件?

网关通常被设计为无状态的,以实现水平扩展。但在很多场景下,临时或持久化的文件存储是不可避免的,主要用途包括:

日志记录(Logging):记录访问日志、错误日志、调试日志等,用于审计、监控和问题排查。这是最常见的使用场景。

缓存数据(Caching):缓存后端服务的响应(如图片、视频、API结果),以减轻后端压力并加速响应。

临时文件(Temporary Files):处理文件上传/下载时,作为中间缓冲。例如,流式上传大文件时先暂存到磁盘,再转发到对象存储。

配置管理(Configuration Management):动态加载路由规则、证书、密钥等配置文件。

消息持久化(Message Persistence):在消息队列网关或事件驱动架构中,为确保消息不丢失,可能暂时将消息写入文件(如 Kafka、RocketMQ 的做法)。

网关存储节点之为什么要写入读取文件?如何做?-EG网关

写入文件

EG8200支持SD卡存储,支持向SD卡内读写文件。不插SD卡的情况下不建议使用文件读写节点,因为会消耗系统盘的EMMC寿命。设备在读写SD卡过程中,请勿频繁断电,否则SD卡容易出现读写保护或者文件损坏的情况。支持将msg.payload写入文件:追加至文件末尾、覆写文件、删除文件等操作。

输入

msg.payload

#存入的消息数据

输出

msg.payload

#写入完成后,输出和输入一致的消息

示例

1.读写文件

[{"id":"84222b92.d65d18","type":"inject","z":"6ca1ff8bb99e320a","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"hello world","payloadType":"str","x":200,"y":300,"wires":[["b4b9f603.739598"]]},{"id":"7b014430.dfd94c","type":"comment","z":"6ca1ff8bb99e320a","name":"读写文件","info":"","x":180,"y":240,"wires":[]},{"id":"b4b9f603.739598","type":"file","z":"6ca1ff8bb99e320a","name":"写文件","filename":"hello.txt","filenameType":"str","appendNewline":true,"createDir":false,"overwriteFile":"true","encoding":"none","x":370,"y":300,"wires":[["6dc01cac.5c4bf4"]]},{"id":"2587adb9.7e60f2","type":"debug","z":"6ca1ff8bb99e320a","name":"调试","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":770,"y":300,"wires":[]},{"id":"6dc01cac.5c4bf4","type":"file in","z":"6ca1ff8bb99e320a","name":"读文件","filename":"hello.txt","format":"utf8","chunk":false,"sendError":false,"encoding":"none","allProps":false,"x":570,"y":300,"wires":[["2587adb9.7e60f2"]]}]

2.删除文件

[{"id":"4ac00fb0.d5f52","type":"inject","z":"6ca1ff8bb99e320a","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"","payloadType":"date","x":250,"y":320,"wires":[["542cc2f4.92857c"]]},{"id":"671f8295.0e6f6c","type":"comment","z":"6ca1ff8bb99e320a","name":"删除文件","info":"File node can delete a file.","x":240,"y":260,"wires":[]},{"id":"542cc2f4.92857c","type":"file","z":"6ca1ff8bb99e320a","name":"","filename":"hello.txt","filenameType":"str","appendNewline":true,"createDir":false,"overwriteFile":"delete","encoding":"none","x":470,"y":320,"wires":[["a24da523.5babe8"]]},{"id":"a24da523.5babe8","type":"debug","z":"6ca1ff8bb99e320a","name":"调试","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":630,"y":320,"wires":[]}]

读取文件

EG8200支持SD卡存储,支持向SD卡内读写文件。不插SD卡的情况下不建议使用文件读写节点,因为会消耗系统盘的EMMC寿命。

设备在读写SD卡过程中,请勿频繁断电,否则SD卡容易出现读写保护或者文件损坏的情况。以字符串或二进制流的形式读取文件的内容。

输入

任意值用于触发读取

输出

msg.payload

#文件的内容,支持字符串或二进制流

msg.filename

#文件名

示例

1.读写文件

[{"id":"84222b92.d65d18","type":"inject","z":"6ca1ff8bb99e320a","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"hello world","payloadType":"str","x":200,"y":300,"wires":[["b4b9f603.739598"]]},{"id":"7b014430.dfd94c","type":"comment","z":"6ca1ff8bb99e320a","name":"读写文件","info":"","x":180,"y":240,"wires":[]},{"id":"b4b9f603.739598","type":"file","z":"6ca1ff8bb99e320a","name":"写文件","filename":"hello.txt","filenameType":"str","appendNewline":true,"createDir":false,"overwriteFile":"true","encoding":"none","x":370,"y":300,"wires":[["6dc01cac.5c4bf4"]]},{"id":"2587adb9.7e60f2","type":"debug","z":"6ca1ff8bb99e320a","name":"调试","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":770,"y":300,"wires":[]},{"id":"6dc01cac.5c4bf4","type":"file in","z":"6ca1ff8bb99e320a","name":"读文件","filename":"hello.txt","format":"utf8","chunk":false,"sendError":false,"encoding":"none","allProps":false,"x":570,"y":300,"wires":[["2587adb9.7e60f2"]]}]

 

 网关需要在存储节点上高效、可靠地协调性能与持久化的平衡,通过批量化、异步化和零拷贝等技术实现高并发读写,并最终将存储职责解耦至外部专用服务,以保持网关自身的无状态和可扩展性。

以上是纵横智控EG网关在存储节点中关于写入文件和读取文件的介绍,望可以在使用过程中帮助到您!有更多的需要可以直接联系我们,感谢您的支持!

热门产品