Easy系列的产品都是用于视频的接入直播的,对于视频直播支持,必然会涉及到视频的存储,不管是直播视频的录像还是点播视频的源文件,都需要磁盘空间进行存储。
当我们的项目运行一段时间,存储的视频文件体积达到一定程度,占用了更多的磁盘空间,这样我们软件升级如何才能完美的解决历史的视频文件接入新版软件的问题呢?本文我们拿视频直播点播流媒体服务器EasyDSS来做个例子跟大家分享一下视频文件进行迁移的过程。
问题分析
对于视频文件、直播录像文件,一般都是存储到指定的磁盘空间,软件服务无非也是到对应的磁盘空间进行数据的读取,只要找到对应的磁盘路径,进行正确的文件读取,都可以在服务中进行正常的展示,提供给服务调用。
顺着这个思路,我们可以发现:
- 通过软件自身设置路径,让对应的服务找到路径中文件来进行文件读取;
- 通过系统软连接方式让指定的路径文件可以在映射的盘符读取到源文件;
- 直接将原始数据copy到新软件包的指定目录。
解决问题
下图是EasyDSS的文件夹结构,其中EasyDSS的所有运行数据都是存储在data文件夹下的,
1、当我们进行软件升级的时候,需要保持原有数据不变,就需要我们把,原来的data目录copy到新版的软件包根目录下,再进行启动新版,这样就会完美使用旧版本兼容新数据;
2、打开软件包根目录的easydss.ini文件,
配置文件中的[dir]就是用于设置文件读取的路径,不同类型的资源可以设置不同的地址,默认是以软件包为根目录的data文件夹下进行的文件存储,当我们启动新版软件,只要保证原有软件包不被删除,将截图中的路径设置为原始数据的绝对路径就可以。
例如截图中的配置:
修改配置,重新启动软件,软件会根据配置自主找到需要对应的文件。
3、不管是Windows系统还是linux系统都有对应的软连接的设置方式
软链接文件有类似于Windows的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件,其中包含的有另一文件的位置信息。
因此我们只需要根据设置,将原文件以软连接的形式链接到源文件就可以,保证指定的源文件可以被读取到。
Window 软连接设置方式
mklink /D 软链接目录(快捷方式目录) 源目录
例:mklink /D D:\data\record E:\mklink
Linux软连接设置方式
mklink /D D:\data\record E:\mklink
例:mklink /D D:\data\record E:\mklink
Windows效果展示:
设置成功重新启动,可以完美解决文件迁移问题。