• Web无插件直播RTMP推流平台EasyDSS程序以服务运行时如何转化绝对路径?


    Web无插件直播点播平台EasyDSS有两种运行模式,一种是以可执行程序直接运行,另外一种是以服务运行。一般在生产环境下,多会采用以服务的方式进行运行。

    但是在以服务运行时,在编程中对于路径的处理需要特别处理。比如在以“./config.toml ”代表配置文件路径的情况下,如果直接运行可执行程序,就能够找到正确的路径。“./ ”代表当前路径。但以服务运行,则无法找到正确的路径。因此如果以服务运行,当前路径在不同的操作系统下就为不同的路径。

    在 Windows 操作系统下,如果程序以服务运行,当前路径在 C:WindowsSystem32 中。
    在 Linux 操作系统中,如果以服务运行,当前路径在 / 中。

    即如果以服务运行,对于 “./config.toml”,在 Windows 操作系统下,就会在 C:WindowsSystem32 查找,因此不会查找到。

    所以在代码中对于此种路径进行编码优化,具体方式如下:

    //GetRealPath 判断传递的是否是相对路径,返回真实路径
    func GetRealPath(path string) string {
       //如果是绝对路径
       if filepath.IsAbs(path) {
          return FormatPath(path)
       }
       return FormatPath(filepath.Join(CWD(), path))
    }
    
    //FormatPath 格式化地址格式
    func FormatPath(path string) string {
       return strings.Replace(path, "\", "/", -1)
    }
    
    // 获取当前工作目录
    func CWD() string {
       path, err := os.Executable()
       if err != nil {
          return ""
       }
       return filepath.Dir(path)
    }
    

    GetRealPath 就是将“./”这种路径转换为绝对路径的方法。对于EasyDSS中绝对路径的需求,是为了无论从外部还是内部访问都可以通过绝对路径找到该文件夹,在EasyDSS做开发调用时,该方式十分可靠。

    EasyDSS提供了丰富的API接口供大家调用,在测试版本中也可以自行进行二次开发,因此大家有需求欢迎联系我们了解,更多视频相关解决方案,欢迎关注我们或者访问TSINGSEE青犀视频官方网站。

  • 相关阅读:
    Objective-C基础3
    C语言回顾-结构体、枚举和文件
    C语言回顾-内存管理和指针函数
    C语言回顾-字符串指针
    C语言回顾-指针
    C语言回顾-二维数组
    Objective-C基础2
    C语言回顾-整型变量修饰符和一维数组
    sql server 判断是否存在数据库,表,列,视图
    大文件数据库脚本导入解决方案
  • 原文地址:https://www.cnblogs.com/easydss/p/14420572.html
Copyright © 2020-2023  润新知