互联网流媒体直播点播平台报ioutil.WriteFile错误导致文件只读如何处理?
不管是研发任何东西,开始时偶尔会出现些小错误。我们最开始研发视频流媒体服务器的时候,像EasyNVR、EasyDSS这类产品,实际上都经过了无数的试错,遇到问题就思考如何解决,碰到报错就解决该错误,我们解决过OCX播放器集成,解决过程序安装失败并报Error错误,还有录像功能失效问题。
在排查了这么多问题之后,渐渐的这些产品才变成了大众现在看到的样子。在往后我也会不断更新关于我们流媒体服务器的问题排查,希望大家能够持续关注。
本文我们继续解决报错问题。互联网直播点播平台报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)