新聞中心
PRESS CENTER網(wǎng)關(guān)通常被設(shè)計(jì)為無狀態(tài)的,以實(shí)現(xiàn)水平擴(kuò)展。但在很多場(chǎng)景下,臨時(shí)或持久化的文件存儲(chǔ)是不可避免的,主要用途包括:
日志記錄(Logging):記錄訪問日志、錯(cuò)誤日志、調(diào)試日志等,用于審計(jì)、監(jiān)控和問題排查。這是最常見的使用場(chǎng)景。
緩存數(shù)據(jù)(Caching):緩存后端服務(wù)的響應(yīng)(如圖片、視頻、API結(jié)果),以減輕后端壓力并加速響應(yīng)。
臨時(shí)文件(Temporary Files):處理文件上傳/下載時(shí),作為中間緩沖。例如,流式上傳大文件時(shí)先暫存到磁盤,再轉(zhuǎn)發(fā)到對(duì)象存儲(chǔ)。
配置管理(Configuration Management):動(dòng)態(tài)加載路由規(guī)則、證書、密鑰等配置文件。
消息持久化(Message Persistence):在消息隊(duì)列網(wǎng)關(guān)或事件驅(qū)動(dòng)架構(gòu)中,為確保消息不丟失,可能暫時(shí)將消息寫入文件(如 Kafka、RocketMQ 的做法)。
EG8200支持SD卡存儲(chǔ),支持向SD卡內(nèi)讀寫文件。不插SD卡的情況下不建議使用文件讀寫節(jié)點(diǎn),因?yàn)闀?huì)消耗系統(tǒng)盤的EMMC壽命。設(shè)備在讀寫SD卡過程中,請(qǐng)勿頻繁斷電,否則SD卡容易出現(xiàn)讀寫保護(hù)或者文件損壞的情況。支持將msg.payload寫入文件:追加至文件末尾、覆寫文件、刪除文件等操作。
輸入
msg.payload
#存入的消息數(shù)據(jù)
輸出
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":"調(diào)試","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":"調(diào)試","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":630,"y":320,"wires":[]}] |
EG8200支持SD卡存儲(chǔ),支持向SD卡內(nèi)讀寫文件。不插SD卡的情況下不建議使用文件讀寫節(jié)點(diǎn),因?yàn)闀?huì)消耗系統(tǒng)盤的EMMC壽命。
設(shè)備在讀寫SD卡過程中,請(qǐng)勿頻繁斷電,否則SD卡容易出現(xiàn)讀寫保護(hù)或者文件損壞的情況。以字符串或二進(jìn)制流的形式讀取文件的內(nèi)容。
輸入
任意值用于觸發(fā)讀取
輸出
msg.payload
#文件的內(nèi)容,支持字符串或二進(jìn)制流
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":"調(diào)試","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"]]}] |
網(wǎng)關(guān)需要在存儲(chǔ)節(jié)點(diǎn)上高效、可靠地協(xié)調(diào)性能與持久化的平衡,通過批量化、異步化和零拷貝等技術(shù)實(shí)現(xiàn)高并發(fā)讀寫,并最終將存儲(chǔ)職責(zé)解耦至外部專用服務(wù),以保持網(wǎng)關(guān)自身的無狀態(tài)和可擴(kuò)展性。
以上是縱橫智控EG網(wǎng)關(guān)在存儲(chǔ)節(jié)點(diǎn)中關(guān)于寫入文件和讀取文件的介紹,望可以在使用過程中幫助到您!有更多的需要可以直接聯(lián)系我們,感謝您的支持!