基于符号链接的文件格式转换方法、装置、介质和设备与流程

文档序号:23729079发布日期:2021-01-26 19:16阅读:67来源:国知局
基于符号链接的文件格式转换方法、装置、介质和设备与流程

[0001]
本公开实施例涉及计算机技术领域,尤其涉及一种基于符号链接的文件格式转换方法,基于符号链接的文件格式转换装置,以及实现基于符号链接的文件格式转换方法的计算机可读存储介质和电子设备。


背景技术:

[0002]
数据格式转换是指将数据由一种存储格式有损地或无损地转换为另外一种存储格式,以达到数据压缩、数据处理(例如滤波、重建等)、面向特定应用场合的适配等目的。特定应用场合可能需要特定的数据格式,例如数据可视化展示和数据分析计算需要的数据格式可能是不一样的、不同的计算机辅助设计或分析软件需要的数据格式也是不一样的、web应用或移动应用依据网络带宽的不同,需要的数据格式或数据压缩率也不一样。
[0003]
数据格式转换通常是一项面向特定行业或领域、复杂且耗时的数据处理过程。因此现有的数据格式转换方法通常针对特定格式的海量数据,将待转换的数据及相关状态和属性信息以列表的形式存储在数据库中,数据管理程序通过读取数据库中的信息,调用格式转换程序进行数据格式转换。
[0004]
现有数据格式转换方法依赖于数据库,需安装数据库软件,若数据库故障可能导致格式转换中断或无法进行。另外,数据格式转换时访问数据库会有一定的时间开销和内存空间开销较大,使用数据库并不是效率最优的解决方案。


技术实现要素:

[0005]
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开实施例提供了一种基于符号链接的文件格式转换方法,基于符号链接的文件格式转换装置,以及实现基于符号链接的文件格式转换方法的计算机可读存储介质和电子设备。
[0006]
第一方面,本公开实施例提供了一种基于符号链接的文件格式转换方法,包括:
[0007]
响应文件格式转换任务,为原始文件建立符号链接,所述符号链接指向所述原始文件,并携带所述文件格式转换任务的任务属性信息;
[0008]
获取所述符号链接中的任务属性信息;
[0009]
基于所述任务属性信息对所述原始文件进行格式转换得到目标文件。
[0010]
在本公开的一些实施例中,所述文件格式转换任务包含批量转换任务,所述批量转换任务转指示对多个原始文件进行格式转换;
[0011]
所述响应文件格式转换任务,为原始文件建立符号链接,包括:
[0012]
响应所述批量转换任务,创建批量转换目录;
[0013]
在所述批量转换目录中为多个所述原始文件分别建立对应的符号链接,每个所述符号链接指向对应的原始文件,并携带对应的原始文件的转换任务的任务属性信息。
[0014]
在本公开的一些实施例中,所述多个原始文件包括第一原始文件和位于文件夹中的第二原始文件,所述方法还包括:
[0015]
在所述批量转换目录下创建第一子目录,所述第一子目录用以存储第二原始文件;
[0016]
在所述批量转换目录中为第一原始文件建立对应的符号链接;
[0017]
在所述第一子目录中为第二原始文件建立对应的符号链接。
[0018]
在本公开的一些实施例中,所述多个原始文件包括位于同一文件夹中的第三原始文件,所述方法还包括:
[0019]
在所述批量转换目录下创建第二子目录,所述第二子目录用以存储第三原始文件;
[0020]
在所述第二子目录中为第三原始文件建立对应的符号链接。
[0021]
在本公开的一些实施例中,所述获取所述符号链接中的任务属性信息,包括:
[0022]
遍历每个目录下的所有的符号链接;
[0023]
获取所有的符号链接中每个所述符号链接的任务属性信息。
[0024]
在本公开的一些实施例中,所述任务属性信息包括文件格式信息和文件格式转换参数,所述文件格式信息指示对原始文件格式转换后的目标文件的文件格式;
[0025]
所述基于所述任务属性信息对所述原始文件进行格式转换得到目标文件,包括:
[0026]
获取所述任务属性信息中的文件格式信息和文件格式转换参数;
[0027]
基于所述文件格式信息调用相应的文件格式转换工具;
[0028]
所述文件格式转换工具基于所述文件格式转换参数对原始文件进行格式转换得到对应的目标文件。
[0029]
在本公开的一些实施例中,所述方法还包括:
[0030]
在建立每个所述符号链接时创建符号链接名称,每个所述符号链接名称中携带对应的任务属性信息,同一目录下的每个所述符号链接具有不同的符号链接名称。
[0031]
第二方面,本公开实施例提供一种基于符号链接的文件格式转换装置,包括:
[0032]
符号链接建立模块,用于响应文件格式转换任务,为原始文件建立符号链接,所述符号链接指向所述原始文件,并携带所述文件格式转换任务的任务属性信息;
[0033]
属性信息获取模块,用于获取所述符号链接的任务属性信息;
[0034]
文件格式转换模块,用于基于所述任务属性信息对所述原始文件进行格式转换得到目标文件。
[0035]
第三方面,本公开实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述任一实施例所述基于符号链接的文件格式转换方法的步骤。
[0036]
第四方面,本公开实施例提供一种电子设备,包括:
[0037]
处理器;以及
[0038]
存储器,用于存储所述处理器的可执行指令;
[0039]
其中,所述处理器配置为经由执行所述可执行指令来执行上述任一实施例所述基于符号链接的文件格式转换方法的步骤。
[0040]
本公开实施例提供的技术方案与现有技术相比具有如下优点:
[0041]
本公开实施例中,用户发起文件格式转换任务后,可为待转换的原始文件建立符号链接,所述符号链接指向所述原始文件,并携带所述文件格式转换任务的任务属性信息,
然后可获取所述符号链接中的任务属性信息,最后基于所述任务属性信息对所述原始文件进行格式转换得到目标文件。这样,本公开实施例的方案利用符号链接指向待转换的原始文件,利用符号链接携带文件格式转换任务的任务属性信息,能够简化数据格式转换任务信息描述和存储的过程,基于符号链接实现文件格式转换,不依赖于数据库,只需要有文件系统的支持即可,因此不需要访问数据库的时间开销和内存空间开销,直接读写符号链接和符号链接指向的文件速度更快,从而可以较为快速地实现文件格式转换,文件格式转换效率高,操作也较为简单便捷。同时基于符号链接实现文件格式转换,不依赖于特定操作系统和文件系统,可跨平台使用。另外,符号链接不占据文件系统的数据区,仅占用目录区,因此磁盘开销低。整体上来说,本实施例方案具有轻量、快速、跨平台等优点。
附图说明
[0042]
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
[0043]
为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0044]
图1为本公开实施例基于符号链接的文件格式转换方法流程图;
[0045]
图2为本公开另一实施例基于符号链接的文件格式转换方法流程图;
[0046]
图3为本公开又一实施例基于符号链接的文件格式转换方法流程图;
[0047]
图4为本公开再一实施例基于符号链接的文件格式转换方法流程图;
[0048]
图5为本公开实施例基于符号链接的文件格式转换装置示意图;
[0049]
图6为本公开实施例实现基于符号链接的文件格式转换方法的电子设备示意图。
具体实施方式
[0050]
为了能够更清楚地理解本公开的上述目的、特征和优点,下面将对本公开的方案进行进一步描述。需要说明的是,在不冲突的情况下,本公开的实施例及实施例中的特征可以相互组合。
[0051]
在下面的描述中阐述了很多具体细节以便于充分理解本公开,但本公开还可以采用其他不同于在此描述的方式来实施;显然,说明书中的实施例只是本公开的一部分实施例,而不是全部的实施例。
[0052]
应当理解,在下文中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”用于描述关联对象的关联关系,表示可以存在三种关系,例如,“a和/或b”可以表示:只存在a,只存在b以及同时存在a和b三种情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
[0053]
图1为本公开实施例示出的一种基于符号链接的文件格式转换方法流程图,该文件格式转换方法可以包括以下步骤:
[0054]
步骤s101:响应文件格式转换任务,为原始文件建立符号链接,所述符号链接指向所述原始文件,并携带所述文件格式转换任务的任务属性信息。
[0055]
步骤s102:获取所述符号链接中的任务属性信息。
[0056]
步骤s103:基于所述任务属性信息对所述原始文件进行格式转换得到目标文件。
[0057]
本公开实施例上述基于符号链接的文件格式转换方法,利用符号链接指向待转换的原始文件,符号链接携带文件格式转换任务的任务属性信息,能够简化数据格式转换任务信息描述和存储的过程,基于符号链接实现文件格式转换,不依赖于数据库,只需要有文件系统的支持即可,因此不需要访问数据库的时间开销和内存空间开销,直接读写符号链接和符号链接指向的文件速度更快,从而可以较为快速地实现文件格式转换,文件格式转换效率高,操作也较为简单便捷。同时基于符号链接实现文件格式转换,不依赖于特定操作系统和文件系统,可跨平台使用。另外,符号链接不占据文件系统的数据区,仅占用目录区,因此磁盘开销低。整体上来说,本实施例方案具有轻量、快速、跨平台等优点。
[0058]
下面对上述各个步骤进行详细说明。在一些示例中,步骤s101中响应文件格式转换任务,为原始文件建立符号链接,所述符号链接指向所述原始文件,并携带所述文件格式转换任务的任务属性信息。
[0059]
示例性的,原始文件可以是doc、pdf、xml、json等格式的文件,多媒体格式如mp4、mov、avi等格式的文件,图像格式如png、jpg、tiff等文件,三维模型格式如obj、3ds、ply、dae、fbx等文件,cad格式如dxf、dwg等文件。这些格式文件的识别例如可以基于文件扩展名(filename extension)识别,文件扩展名也称为文件后缀名。文件格式转换任务可以指示将一种格式的文件转换为另一种格式的文件即目标文件,例如将doc格式的word文件转换为pdf格式的文件,但不限于此。任务属性信息可以包含目标文件的格式信息如pdf格式,转换时的参数信息如从word文件的哪一页开始转换等。又例如转换多媒体格式文件时任务属性信息可以包括目标文件的格式信息如avi格式,转换时的输出码率、转换后的视频文件的分辨率、视频宽度和高度等。以上仅为举例说明,任务属性信息具体可根据需要设置,本实施例中对此不作限制。
[0060]
符号链接又称软链接,是一类特殊的文件,其包含有一条以绝对路径或者相对路径的形式指向其它文件或者目录的引用。类unix系统(包括linux、macos在内)和windows系统(如windows vista、windows 7及以后的版本)均支持符号链接,高级语言(c、c++、go等)中也提供相应的系统调用或函数接口用于创建、访问或删除符号链接。例如go语言使用os.symlink函数创建符号链接,即创建指向其他文件的文件,使用os.readlink函数访问符号链接,得到符号链接所指向的文件,以上go语言提供的函数可以跨平台使用。对符号链接的访问操作均会被重定向到其所指向的文件,如读、写、遍历等,但对符号链接的复制、移动、删除则是针对符号链接自身。符号链接具有文件大小为0,不占用磁盘空间,实际上是不占用文件系统的数据区,但会占用文件系统的目录区的优点,相比windows下的快捷方式,或数据库中的记录,符号链接体积更小,并且符号链接可以被不同的现代操作系统所支持,具有更好的跨平台特性。本实施例中,在文件格式转换时,为原始文件建立对应的符号链接,该符号链接携带所述文件格式转换任务的任务属性信息。
[0061]
示例性的,例如原始文件包含xyz.obj和file.obj两个文件,则可以创建名称为to-.3ds-xyz.obj和to-.3ds-file.obj的两个符号链接。任务属性信息即其中的to-.3ds,
表示将要对file.obj文件执行格式转换操作,转换后的目标文件格式为.3ds。
[0062]
需要说明的是,符号链接名称to-.3ds-xyz.obj也可以通过约定的方式具有其它的形式,而不是必须严格按照上文给出的格式要求。例如to-.不是必要的,可以删掉,由于符号链接是一个指向目标文件的特殊文件,其已经包含了目标文件的相对或绝对路径,因此符号链接名称中的file.obj也不是必须的,即文件/foo/bar/file.obj所对应的符号链接名称完全可以是3ds,即通过名称为3ds的符号链接就可以定向到文件/foo/bar/file.obj,3ds显式地给出了目标文件格式。本实施例中使用to-.3ds-file.obj代替3ds这种简略的写法,是为了便于用户清楚直观地识别出名称为to-.3ds-file.obj的符号链接所指向的那个原始文件的文件名是file,文件扩展名即文件格式是.obj,即将要对file.obj文件执行格式转换操作,转换后的目标文件格式为.3ds,转换后的目标文件名称可能为file.3ds,也可以命名为其他名称,但扩展名应为.3ds。
[0063]
在步骤s102中,获取所述符号链接中的任务属性信息。
[0064]
示例性的,建立如上所述的符号链接后,可以获取待转换的原始文件file.obj,以及符号链接中的任务属性信息,如获取名称为to-.3ds-file.obj的符号链接中的任务属性信息.3ds,
[0065]
步骤s103:基于所述任务属性信息对所述原始文件进行格式转换得到目标文件。
[0066]
示例性的,获取名称为to-.3ds-file.obj的符号链接中的任务属性信息.3ds之后,可以对原始文件file.obj进行格式转换得到目标文件file.3ds。即将文件格式是.obj的文件file.obj执行格式转换操作,转换后的目标文件格式为.3ds。
[0067]
可选的,在本公开的一些实施例中,所述文件格式转换任务可以包含批量转换任务,所述批量转换任务转指示对多个原始文件进行格式转换。为了提高格式转换的处理效率,便于格式转换操作的组织、调度和管理。相应的,步骤s101中响应文件格式转换任务,为原始文件建立符号链接,具体可以包括下述步骤:
[0068]
步骤s201:响应所述批量转换任务,创建批量转换目录;
[0069]
步骤s202:在所述批量转换目录中为多个所述原始文件分别建立对应的符号链接,每个所述符号链接指向对应的原始文件,并携带对应的原始文件的转换任务的任务属性信息。
[0070]
示例性的,本实施中可以通过调度管理程序实现基本的文件组织和管理、转换任务的创建和管理、提供命令行、右键菜单、图形界面或web界面中一种或多种的控制功能,具体可以参考现有技术理解,此处不再赘述。用户通过调度管理程序可以查看、修改文件内容和属性如权限、操作文件(创建、复制、移动、删除等),发起文件转换或批量文件转换任务以创建符号链接,批量或单独删除文件转换任务对应的符号链接等。其中创建和管理转换任务(即符号链接)是调度管理程序的核心功能,一般文件(非符号链接)查看、修改或操作等功能是可选的。
[0071]
示例性的,当用户发起文件转换任务如批量转换任务时,首先会创建一个批量转换任务对应的目录,例如用户创建任务名称为t123456-taskname的批量转换任务,调度管理程序会创建示例性的如下目录/bgbatchtask/pending/2020-10-10-t123456-taskname/。其中,2020-10-10-t123456-taskname表示任务创建的时间和任务名称。/bgbatchtask/目录用于存储全部的批量转换任务,/bgbatchtask/pending/用于存储待转
换的原始文件。
[0072]
在其他实施例中,调度管理程序可以同时创建目录/bgbatchtask/converted/2020-10-10-t123456-taskname/和/bgbatchtask/failed/。其中,/bgbatchtask/converted/目录用于存储已经转换的目标文件,/bgbatchtask/failed/目录用于存储转换失败的文件。
[0073]
若用户选中多个文件进行批量转换,如/foo/bar/abc.obj、/foo/bar/rst.obj和/foo/bar/xyz.obj三个文件,调度管理程序会在创建的/bgbatchtask/pending/2020-10-10-t123456-taskname/目录中创建三个符号链接,to-.3ds-abc.obj、to-.3ds-rst.obj和to-.3ds-xyz.obj分别指向待转换的上述三个文件。
[0074]
可选的,在本公开的一些实施例中,所述多个原始文件包括第一原始文件和位于文件夹中的第二原始文件,为了进一步提高格式转换的处理效率,便于格式转换操作的组织、调度和管理。如图3所示,所述方法还可包括以下步骤:
[0075]
步骤s301:在所述批量转换目录下创建第一子目录,所述第一子目录用以存储第二原始文件;
[0076]
步骤s302:在所述批量转换目录中为第一原始文件建立对应的符号链接;
[0077]
步骤s303:在所述第一子目录中为第二原始文件建立对应的符号链接。
[0078]
具体的,作为示例,若用户选中的是文件和文件夹的组合形式,例如用户选中/foo/bar/abc/和/foo/bar/rst/两个文件夹和/foo/bar/xyz.obj和/foo/bar/file.obj两个原始文件,则调度管理程序会在/bgbatchtask/pending/2020-10-10-t123456-taskname/目录中创建to-.3ds-xyz.obj和to-.3ds-file.obj两个符号链接,以及在/bgbatchtask/pending/2020-10-10-t123456-taskname/目录下创建子目录/foo/bar/abc/和/foo/bar/rst/,并分别遍历/foo/bar/abc/和/foo/bar/rst/两个子目录,并针对子目录中的例如全部obj格式的文件分别创建对应的符号链接。
[0079]
可选的,在本公开的一些实施例中,所述多个原始文件包括位于同一文件夹中的第三原始文件,为了进一步提高格式转换的处理效率,便于格式转换操作的组织、调度和管理,如图4所示,所述方法还可包括以下步骤:
[0080]
步骤s401:在所述批量转换目录下创建第二子目录,所述第二子目录用以存储第三原始文件。
[0081]
步骤s402:在所述第二子目录中为第三原始文件建立对应的符号链接。
[0082]
具体的,作为示例,若用户选中文件夹,调度管理程序会在目录/bgbatchtask/pending/2020-10-10-t123456-taskname/中创建子目录和符号链接,例如用户选中/foo/bar/文件夹,则在/bgbatchtask/pending/2020-10-10-t123456-taskname/中创建bar/子目录,遍历所述bar/子目录中的文件并建立对应的符号链接。
[0083]
例如,若转换任务由obj的源格式转换到3ds的目标格式,调度管理程序会遍历/foo/bar/文件夹中的全部obj文件,并在/bgbatchtask/pending/2020-10-10-t123456-taskname/bar/中创建对应的符号链接,例如原始文件/foo/bar/file.obj对应于符号链接/bgbatchtask/pending/2020-10-10-t123456-taskname/bar/to-.3ds-file.obj,原始文件/foo/bar/abc/xyz.obj对应于符号链接/bgbatchtask/pending/2020-10-10-t123456-taskname/bar/abc/to-.3ds-xyz.obj。
[0084]
又例如用户选中/foo/bar1/、/foo/bar2/和/foo/bar3/三个文件夹,则在目录/bgbatchtask/pending/2020-10-10-t123456-taskname/中创建bar1/、bar2/和bar3/三个子目录,分别遍历bar1/、bar2/和bar3/三个子目录并为各子目录下的文件建立对应的符号链接。
[0085]
可选的,在上述各实施例的基础上,本公开的一些实施例中,步骤s102中获取所述符号链接中的任务属性信息,具体可包括:遍历每个目录下的所有的符号链接;获取所有的符号链接中每个所述符号链接的任务属性信息。
[0086]
示例性的,例如可以遍历目录/bgbatchtask/pending/2020-10-10-t123456-taskname/中bar1/、bar2/和bar3/三个子目录下的所有符号链接;遍历/bgbatchtask/pending/2020-10-10-t123456-taskname/bar/目录下的所有符号链接,然后可以获取所有的符号链接中每个所述符号链接的任务属性信息。
[0087]
可选的,在上述各实施例的基础上,本公开的一些实施例中,所述任务属性信息可包括但不限于文件格式信息和文件格式转换参数,所述文件格式信息指示对原始文件格式转换后的目标文件的文件格式。
[0088]
示例性的,创建的符号链接的名称可以携带任务属性信息如转换过程中附加的参数信息等,转换时可以读取符号链接获取任务属性信息,并执行转换任务。
[0089]
例如名称为to-.mp4-w-h-br-fr-others-file.avi或mp4-w-h-br-fr-others-662f8d8的符号链接,表示将file.avi文件转换为file.mp4文件。其中,to-.mp4是文件格式信息,即转换后的目标文件的文件格式是.mp4,w-h-br-fr-others是文件格式转换参数。
[0090]
示例性的,w和h可以分别表示输出的视频宽度和高度,br可以表示期望的输出码率,fr表示输出的分辨率,others可以为其它约定的可选参数,也可以无此参数。w、h、br、fr可以为字符串表示的数值或带有单位的数值,others可以为约定的字符型参数。
[0091]
相应的,步骤s103中基于所述任务属性信息对所述原始文件进行格式转换得到目标文件,具体可以包括以下步骤:
[0092]
步骤i):获取所述任务属性信息中的文件格式信息和文件格式转换参数。
[0093]
步骤ii):基于所述文件格式信息调用相应的文件格式转换工具。
[0094]
示例性的,不同的文件格式信息对应不同的文件格式转换工具,如pdf格式对应pdf文件格式转换工具等。
[0095]
步骤iii):所述文件格式转换工具基于所述文件格式转换参数对原始文件进行格式转换得到对应的目标文件。
[0096]
具体的,作为示例,文件格式转换工具可以是但不限于文件格式转换程序,其可处于执行的状态或暂停的状态,暂停状态中会等待用户通过例如调度管理程序发出的启动指令,也可以根据预先设定的规则在特定的如系统负荷小,空闲时段等条件下运行或停止,运行状态中的文件格式转换工具会接受用户通过调度管理程序发出的停止指令从而停止转换过程。
[0097]
文件格式转换工具执行转换任务可以创建多个子进程,用于并发地执行多个转换任务。以某个符号链接如目录/bgbatchtask/pending/2020-10-10-t123456-taskname/bar/下的符号链接to-.3ds-file.obj为例,后台会调用特定的文件格式转换工具,例如conv_command执行转换任务,to-.3ds-file.obj符号链接所指向的目录/foo/bar/下的文
件file.obj将作为输入文件,符号链接名中附带的参数信息(例如w-h-br-fr-others或其他约定的参数)也将传入。
[0098]
在执行转换操作成功后,可以删除对应的符号链接(3ds或to-.3ds-file.obj),若转换任务执行失败,符号链接/bgbatchtask/pending/2020-10-10-t123456-taskname/bar/to-.3ds-file.obj将会被移动到/bgbatchtask/failed/目录下对应的子目录/bgbatchtask/failed/2020-10-10-t123456-taskname/bar/enoent-3ds-file.obj。其中,enoent-3ds-file.obj可具有其它文件名,示例性地,错误码enoent表示符号链接指向的文件不存在导致转换无法进行,3ds表示目标文件格式,file.obj表示原始文件名。实际中的错误可能有其他的形式,可根据需要进行约定,例如磁盘空间不足,输入文件错误,三维模型缺少必要的材质或纹理文件等。
[0099]
可选的,在上述各实施例的基础上,本公开的一些实施例中,所述方法还可以包括:在建立每个所述符号链接时创建符号链接名称,每个所述符号链接名称中携带对应的任务属性信息,同一目录下的每个所述符号链接具有不同的符号链接名称。
[0100]
示例性的,例如建立名称为to-.3ds-file.obj的符号链接。任务属性信息即其中的to-.3ds,表示将要对file.obj文件执行格式转换操作,转换后的目标文件格式为.3ds。
[0101]
在文件系统中,由于在同一个目录下不允许出现两个相同名称的文件。因此本实施例中使用to-.3ds-file.obj的命名方式,有助于避免文件重名,若/foo/bar/file.obj被映射到名为3ds的符号链接,/foo/bar/anotherfile.obj也被映射到名为3ds的符号链接,由于两个同名为3ds的文件是不允许出现在同一个目录/bgbatchtask/pending/2020-10-10-t123456-taskname/中的,因此不使用3ds作为符号链接的文件名,而使用to-.3ds-file.obj和to-.3ds-anotherfile.obj两个不同文件名是更直接的方式。但这不是必须的,也就是说符号链接的名称只要通过约定满足约定的条件,如满足在同一个目录下名称不重复的条件或者名称是随机命名且不重复即可,例如3ds-1和3ds-2这样的形式,当然也可以是3ds-b8a31b6和3ds-4716317这种随机形式。若某个目录下只有一个符号链接,则可以使用3ds这样的名称,即目标格式作为符号链接的文件名也是可行的。需要说明的是,本实施例中对建立的符号链接的存储位置不作限定,可以位于上级目录下,也可以位于下级子目录下,只要同一目录下符号链接的名称不重复即可。
[0102]
本公开实施例提出的方案能够实现批量、海量的文件格式转换任务的创建、管理、调度和组织。相比于将格式转换任务属性和参数存储于数据库或其他文件中的方式,本公开实施例提出的方案具有轻量、快速、跨平台等优点,具体体现如下:
[0103]
1、由于不需要访问数据库,运行时时间开销和内存空间开销低,转换速度快、耗时少、效率高。
[0104]
2、不依赖于数据库,格式转换的属性和参数存储于文件系统的目录区而非数据库,仅需要操作系统和文件系统的支持,实施简单方便实现轻量化。
[0105]
3、不依赖于特定操作系统和文件系统,可跨平台使用。
[0106]
4、不依赖于特定的高级编程语言,可使用不同的语言实现,例如c++、go等。
[0107]
5、操作直接便捷,在单机程序中,用户可以在文件管理器或命令中直接建立、查看或删除符号链接,操作更便捷,不需要借助调度管理程序删除符号链接,若是web程序,可通过web界面进行操作,操作更便捷;
[0108]
6、符号链接不占据文件系统的数据区,仅占用目录区,因此磁盘开销低;
[0109]
7、不依赖于数据库,具有可靠性,可避免由于数据库故障所导致的问题;
[0110]
8、灵活部署,可实现为单机程序在单机上运行,也可以实现为web程序在服务器上运行。
[0111]
需要说明的是,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。另外,也易于理解的是,这些步骤可以是例如在多个模块/进程/线程中同步或异步执行。
[0112]
基于同一构思,本公开实施例还提供一种基于符号链接的文件格式转换装置,如图5所示基于符号链接的文件格式转换装置,其可以包括下述模块:符号链接建立模块501,用于响应文件格式转换任务,为原始文件建立符号链接,所述符号链接指向所述原始文件,并携带所述文件格式转换任务的任务属性信息。属性信息获取模块502,用于获取所述符号链接的任务属性信息。文件格式转换模块503,用于基于所述任务属性信息对所述原始文件进行格式转换得到目标文件。
[0113]
可选的,在本公开的一些实施例中,所述文件格式转换任务包含批量转换任务,所述批量转换任务转指示对多个原始文件进行格式转换。相应的,所述符号链接建立模块501响应文件格式转换任务,为原始文件建立符号链接,具体可以包括:响应所述批量转换任务,创建批量转换目录;在所述批量转换目录中为多个所述原始文件分别建立对应的符号链接,每个所述符号链接指向对应的原始文件,并携带对应的原始文件的转换任务的任务属性信息。
[0114]
可选的,在本公开的一些实施例中,所述多个原始文件包括第一原始文件和位于文件夹中的第二原始文件,所述符号链接建立模块501还用于:在所述批量转换目录下创建第一子目录,所述第一子目录用以存储第二原始文件;在所述批量转换目录中为第一原始文件建立对应的符号链接;在所述第一子目录中为第二原始文件建立对应的符号链接。
[0115]
可选的,在本公开的一些实施例中,所述多个原始文件包括位于同一文件夹中的第三原始文件,所述符号链接建立模块501还用于:在所述批量转换目录下创建第二子目录,所述第二子目录用以存储第三原始文件;在所述第二子目录中为第三原始文件建立对应的符号链接。
[0116]
可选的,在本公开的一些实施例中,所述属性信息获取模块502获取所述符号链接中的任务属性信息,具体可包括:遍历每个目录下的所有的符号链接;获取所有的符号链接中每个所述符号链接的任务属性信息。
[0117]
可选的,在本公开的一些实施例中,所述任务属性信息包括文件格式信息和文件格式转换参数,所述文件格式信息指示对原始文件格式转换后的目标文件的文件格式。相应的,所述文件格式转换模块503基于所述任务属性信息对所述原始文件进行格式转换得到目标文件,具体可包括:获取所述任务属性信息中的文件格式信息和文件格式转换参数;
[0118]
基于所述文件格式信息调用相应的文件格式转换工具;所述文件格式转换工具基于所述文件格式转换参数对原始文件进行格式转换得到对应的目标文件。
[0119]
可选的,在本公开的一些实施例中,所述装置还包括符号链接名称配置模块,用于
在建立每个所述符号链接时创建符号链接名称,每个所述符号链接名称中携带对应的任务属性信息,同一目录下的每个所述符号链接具有不同的符号链接名称。
[0120]
关于上述实施例中的装置,其中各个模块执行操作的具体方式以及带来的相应技术效果已经在有关该方法的实施例中进行了对应的详细描述,此处将不做详细阐述说明。
[0121]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。作为模块或单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现木公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0122]
本公开实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任一项实施例所述基于符号链接的文件格式转换方法的步骤。
[0123]
示例性的,该可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。
[0124]
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、rf等等,或者上述的任意合适的组合。
[0125]
本公开实施例还提供一种电子设备,包括处理器以及存储器,存储器用于存储所述处理器的可执行指令。其中,所述处理器配置为经由执行所述可执行指令来执行上述任一项实施例中所述基于符号链接的文件格式转换方法的步骤。
[0126]
示例性的,该电子设备可以是一台计算机,或者一台服务器或服务器集群,本实施例中对此不作限制。
[0127]
下面参照图6来描述根据本发明的一个实施方式的电子设备600。图6显示的电子设备600仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0128]
如图6所示,电子设备600以通用计算设备的形式表现。电子设备600的组件可以包括但不限于:至少一个处理单元610、至少一个存储单元620、连接不同系统组件(包括存储单元620和处理单元610)的总线630、显示单元640等。
[0129]
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元610执行,使得所述处理单元610执行本说明书上述基于符号链接的文件格式转换方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元610可以执行如图1中所示基于符号链接的文件格式转换方法的步骤。
[0130]
所述存储单元620可以包括易失性存储单元形式的可读介质,例如随机存取存储
单元(ram)6201和/或高速缓存存储单元6202,还可以进一步包括只读存储单元(rom)6203。
[0131]
所述存储单元620还可以包括具有一组(至少一个)程序模块6205的程序/实用工具6204,这样的程序模块6205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
[0132]
总线630可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
[0133]
电子设备600也可以与一个或多个外部设备700(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备600交互的设备通信,和/或与使得该电子设备600能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)接口650进行。并且,电子设备600还可以通过网络适配器660与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。网络适配器660可以通过总线630与电子设备600的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备600使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0134]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd-rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本公开实施方式的上述基于符号链接的文件格式转换方法。
[0135]
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0136]
以上所述仅是本公开的具体实施方式,使本领域技术人员能够理解或实现本公开。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本公开的精神或范围的情况下,在其它实施例中实现。因此,本公开将不会被限制于本文所述的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1