RTSP协议网络摄像头互联网直播边缘计算网关EasyNVR匿名登录用户可以上传授权文件吗?
在RTSP协议视频平台EasyNVR的权限中,分为管理员登录和游客登陆,很容易理解,管理员登录就会获得更多的权限,而游客仅有阅览权限,没有操作 及配置权限。
在这样的权限管理系统下,匿名登陆的用户上传授权文件理应是不会成功的,但是我们在测试的时候,使用匿名用户上传授权文件,既没有成功提示,也没有失败提示。这显然是不合常理的。

所以我们先通过浏览器调试观察请求的情况。

发现接口请求是失败的,但是没有前端没有任何提示。查看前端代码:
<tr>
<td>提交激活文件</td>
<td>
<el-upload
class="upload-pem"
:action="verifyproductcode()"
name="file"
accept=".pem"
:on-success="checkCode"
:on-error="errorUpload"
:show-file-list="false"
:on-exceed="handleExceed"
>
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
</td>
</tr>
这个上传组件是调用element的el-upload组件的,查看element的api文档:

于是我们想到用自定义上传方法,得到请求信息:
<tr>
<td>提交激活文件</td>
<td>
<el-upload
class="upload-pem"
action="`/api/v1/verifyproductcode`"
:http-request="myUpload"
name="file"
accept=".pem"
:on-error="errorUpload"
:show-file-list="false"
:on-exceed="handleExceed"
>
<el-button size="small" type="primary">点击上传</el-button>
</el-upload>
</td>
</tr>
myUpload(content) {
$.post("/api/v1/verifyproductcode").then(ret => {
if (ret.EasyDarwin.Body.State == 1) {
this.$message({
type: "success",
message: "授权成功!"
});
this.getServerInfo();
} else {
this.$message({
type: "error",
message: "输入有效激活文件"
});
}
});
}
上传代码之后解决效果如下图,可以看到上传失败的提示了。


EasyDarwin是国内视频流媒体团队TSINGSEE青犀视频开发和维护的开源社区。从2012年12月创建并发展至今,从原有的单服务的流媒体服务器形式,扩展成现在的云平台架构的开源项目。TSINGSEE青犀视频专注于计算机视觉、模式识别领域的开发与研究, 涵盖支持ONVIF、RTSP、GB/T28181等多协议、多路数的智能分析服务器。
浙公网安备 33010602011771号