互聯網流媒體直播點播平臺報ioutil.WriteFile錯誤導致文件只讀如何處理?

不管是研發任何東西,開始時偶爾會出現些小錯誤。我們最開始研發視頻流媒體服務器的時候,像EasyNVR、EasyDSS這類產品,實際上都經過了無數的試錯,遇到問題就思考如何解決,碰到報錯就解決該錯誤,我們解決過OCX播放器集成,解決過程序安裝失敗並報Error錯誤,還有錄像功能失效問題

在排查了這麼多問題之後,漸漸的這些產品才變成了大衆現在看到的樣子。在往後我也會不斷更新關於我們流媒體服務器的問題排查,希望大家能夠持續關注。

EasyDSS加水印.png

本文我們繼續解決報錯問題。互聯網直播點播平臺報ioutil.WriteFil錯誤,如下圖代碼,導致文件變爲只讀,不能使用,該如何解決?

ioutil.WriteFile("D:/test.txt", []byte("test data"), os.ModeAppend)

通過各方面的查詢後,我瞭解到在 Windows 操作系統,Go1.14 及以上版本,會導致被寫入數據文件(test.txt)變爲只讀文件,而在 Go1.12、Go1.13 中均正常,這是Go1.14 本身自帶的bug。

參考如下:

https://github.com/golang/go/issues/38225
https://github.com/golang/go/issues/39125

解決辦法:

可以將 WriteFile 的最後一個參數,由原先的os.ModeAppend,修改爲 0644,將文件設置爲可讀可寫權限,即可解決此種問題。

ioutil.WriteFile("D:/test.txt", []byte("test data"), 0644)

DSS9.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章