CN115905117A - 文件定位方法、文件存储方法、装置、设备和存储介质 - Google Patents
文件定位方法、文件存储方法、装置、设备和存储介质 Download PDFInfo
- Publication number
- CN115905117A CN115905117A CN202110998512.1A CN202110998512A CN115905117A CN 115905117 A CN115905117 A CN 115905117A CN 202110998512 A CN202110998512 A CN 202110998512A CN 115905117 A CN115905117 A CN 115905117A
- Authority
- CN
- China
- Prior art keywords
- target
- file
- metadata
- target data
- data file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种文件定位方法、文件存储方法、装置、设备和存储介质,涉及数据存储技术领域。所述方法包括:获取目标数据文件的目标元数据,其中,该目标元数据包含在目标索引文件中,且,该目标索引文件包括该目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对该目标数据文件执行打开操作;根据该目标元数据确定该目标数据文件的存储位置。采用本方法能够降低ts文件元数据存储所带来的硬件成本以及运维成本。
Description
技术领域
本申请涉及数据存储技术领域,特别是涉及一种文件定位方法、文件存储方法、装置、设备和存储介质。
背景技术
通常情况下,服务器一般需要分别由不同的存储资源来存储文件的元数据以及文件本身,其中,文件的元数据是用于描述文件的数据,例如,文件的元数据可以包括文件的大小、文件的创建时间等等。一般来说,服务器需要根据文件的元数据来定位文件的存储位置,从而对文件进行相关操作。
当前,大部分的视频文件都基于HLS(英文全称:HTTP Live Streaming;中文全称:基于HTTP的自适应码率流媒体传输协议)协议存储,其中,HLS协议涉及到两种类型的文件,一种为m3u8类型,一种为ts类型,其中,ts文件是一种视频分片文件,m3u8文件是一种ts文件的索引文件。通常情况下,在HLS协议中,需要存储的ts文件的数量十分庞大,与此同时,ts文件的元数据的数量也十分庞大,而存储数量庞大的ts文件元数据需要服务器在元数据的存储资源上付出较大的硬件成本以及运维成本。
当前,如何降低ts文件元数据存储所带来的硬件成本以及运维成本,已经成为了一个亟待解决的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种能够降低ts文件元数据存储所带来的硬件成本以及运维成本的文件定位方法、文件存储方法、装置、设备和存储介质。
第一方面,提供了一种文件定位方法,该方法包括:
获取目标数据文件的目标元数据,其中,该目标元数据包含在目标索引文件中,且,该目标索引文件包括该目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对该目标数据文件执行打开操作;根据该目标元数据确定该目标数据文件的存储位置。
在其中一个实施例中,获取目标数据文件的目标元数据,包括:接收并解析该客户端发送的针对该目标数据文件的文件处理请求,得到该目标元数据。
在其中一个实施例中,该文件处理请求携带目标编码元数据,该目标编码元数据是对该目标元数据编码后得到的,接收并解析该客户端发送的针对该目标数据文件的文件处理请求,得到该目标元数据,包括:接收并解析该文件处理请求,得到该目标编码元数据;对该目标编码元数据进行解码,得到该目标元数据。
在其中一个实施例中,该目标索引文件包括该目标编码元数据,接收并解析该文件处理请求,得到该目标编码元数据之前,该方法还包括:向该客户端发送该目标索引文件,以触发该客户端根据该目标索引文件获取该目标编码元数据,并根据该目标编码元数据生成该文件处理请求。
在其中一个实施例中,该文件处理请求为下载请求,根据该目标元数据确定该目标数据文件的存储位置之后,该方法还包括:根据该目标数据文件的存储位置获取该目标数据文件,并将该目标数据文件发送至该客户端。
在其中一个实施例中,该目标元数据包括该目标数据文件的标准数据量大小,将该目标数据文件发送至该客户端,包括:若获取到的该目标数据文件的数据量大小与该标准数据量大小一致,则将该目标数据文件发送至该客户端。
在其中一个实施例中,该文件处理请求为删除请求,根据该目标元数据确定该目标数据文件的存储位置之后,该方法还包括:根据该目标数据文件的存储位置,对该目标数据文件进行删除处理。
在其中一个实施例中,该目标索引文件为m3u8文件,该目标数据文件为ts文件。
第二方面,提供了一种文件定位方法,该方法包括:
获取目标索引文件,该目标索引文件包括目标数据文件的目标元数据以及该目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对该目标数据文件执行打开操作;根据该目标索引文件向服务器发送针对该目标数据文件的文件处理请求,以供该服务器根据该文件处理请求获取该目标元数据,并根据该目标元数据确定该目标数据文件的存储位置。
在其中一个实施例中,该目标索引文件包括对该目标元数据进行编码后得到的目标编码元数据,根据该目标索引文件向服务器发送针对该目标数据文件的文件处理请求,包括:从该目标索引文件中提取该目标编码元数据;根据该目标编码元数据生成并向该服务器发送该文件处理请求,其中,该文件处理请求携带该目标编码元数据。
在其中一个实施例中,该目标索引文件为m3u8文件,该目标数据文件为ts文件。
第三方面,提供了一种文件存储方法,该方法包括:
接收并解析客户端上传的目标数据文件,得到该目标数据文件的目标元数据;基于该目标元数据获取目标索引文件,其中,该目标索引文件包括该目标元数据和该目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对该目标数据文件执行打开操作;存储该目标数据文件以及该目标索引文件。
在其中一个实施例中,基于该目标元数据获取目标索引文件之前,还包括:
接收该客户端发送的文件上传请求,该文件上传请求中携带该目标数据文件的类型标识;根据该目标数据文件的类型标识确定该目标数据文件是否为预设文件类型;
对应地,基于该目标元数据获取目标索引文件,包括:若该目标数据文件为该预设文件类型,则基于该目标元数据获取目标索引文件。
在其中一个实施例中,基于该目标元数据获取目标索引文件,包括:对该目标元数据进行编码,得到目标编码元数据;基于该目标编码元数据获取该目标索引文件。
在其中一个实施例中,基于该目标编码元数据获取该目标索引文件,包括:将该目标编码元数据封装至该客户端预先上传的初始索引文件中,得到该目标索引文件。
在其中一个实施例中,该初始索引文件包括该目标数据文件的标识,将该目标编码元数据封装至该客户端预先上传的初始索引文件中,得到该目标索引文件,包括:将该目标编码元数据封装至该目标数据文件的标识之前,得到该目标索引文件。
在其中一个实施例中,该目标数据文件为多个,该初始索引文件包括多个该目标数据文件的标识;将该目标编码元数据封装至该目标数据文件的标识之前,得到该目标索引文件,包括:将各该目标数据文件的目标编码元数据对应封装至各该目标数据文件的标识之前,得到该目标索引文件。
在其中一个实施例中,基于该目标编码元数据获取该目标索引文件,包括:将该目标编码元数据发送至该客户端,以触发该客户端将该目标编码元数据封装至初始索引文件中,得到该目标索引文件;接收该客户端发送的该目标索引文件。
在其中一个实施例中,该目标索引文件为m3u8文件,该目标数据文件为ts文件。
第四方面,提供了一种文件存储方法,该方法包括:
向服务器发送目标数据文件,以触发该服务器解析该目标数据文件,得到该目标元数据;接收该服务器发送的该目标元数据;根据该目标元数据获取该目标索引文件,并将该目标索引文件发送至该服务器,以供该服务器存储该目标数据文件和该目标索引文件,该目标索引文件包括该目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对该目标数据文件执行打开操作。
在其中一个实施例中,该方法还包括:向该服务器发送文件上传请求,该文件上传请求中携带该目标数据文件的类型标识;其中,该文件上传请求用于触发该服务器在根据该目标数据文件的类型标识确定该目标数据文件为预设文件类型的情况下,向客户端发送该目标元数据。
在其中一个实施例中,接收该服务器发送的该目标元数据,包括:接收该服务器发送的对该目标元数据进行编码后得到的目标编码元数据。
在其中一个实施例中,根据该目标元数据获取该目标索引文件,包括:将该目标编码元数据封装至初始索引文件中,得到该目标索引文件。
在其中一个实施例中,该初始索引文件包括该目标数据文件的标识,将该目标编码元数据封装至初始索引文件中,得到该目标索引文件,包括:将该目标编码元数据封装至该目标数据文件的标识之前,得到该目标索引文件。
在其中一个实施例中,该目标数据文件为多个,该初始索引文件包括多个该目标数据文件的标识;将该目标编码元数据封装至该目标数据文件的标识之前,得到该目标索引文件,包括:将各该目标数据文件的目标编码元数据对应封装至各该目标数据文件的标识之前,得到该目标索引文件。
在其中一个实施例中,该目标索引文件为m3u8文件,该目标数据文件为ts文件。
第五方面,提供了一种文件定位装置,该装置包括:
获取模块,用于获取目标数据文件的目标元数据,其中,该目标元数据包含在目标索引文件中,且,该目标索引文件包括该目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对该目标数据文件执行打开操作;
确定模块,用于根据该目标元数据确定该目标数据文件的存储位置。
在其中一个实施例中,该获取模块,具体用于:
接收并解析该客户端发送的针对该目标数据文件的文件处理请求,得到该目标元数据。
在其中一个实施例中,该文件处理请求携带目标编码元数据,该目标编码元数据是对该目标元数据编码后得到的,该获取模块,具体用于:接收并解析该文件处理请求,得到该目标编码元数据;对该目标编码元数据进行解码,得到该目标元数据。
在其中一个实施例中,该目标索引文件包括该目标编码元数据,该装置还包括第一发送模块;
该第一发送模块,用于向该客户端发送该目标索引文件,以触发该客户端根据该目标索引文件获取该目标编码元数据,并根据该目标编码元数据生成该文件处理请求。
在其中一个实施例中,该文件处理请求为下载请求,该装置还包括第二发送模块;
该第二发送模块,用于根据该目标数据文件的存储位置获取该目标数据文件,并将该目标数据文件发送至该客户端。
在其中一个实施例中,该目标元数据包括该目标数据文件的标准数据量大小,该第二发送模块,具体用于:若获取到的该目标数据文件的数据量大小与该标准数据量大小一致,则将该目标数据文件发送至该客户端。
在其中一个实施例中,该文件处理请求为删除请求,该装置还包括删除模块;
该删除模块,用于根据该目标数据文件的存储位置,对该目标数据文件进行删除处理。
在其中一个实施例中,该目标索引文件为m3u8文件,该目标数据文件为ts文件。
第六方面,提供了一种文件定位装置,该装置包括:
获取模块,用于获取目标索引文件,该目标索引文件包括目标数据文件的目标元数据以及该目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对该目标数据文件执行打开操作;
发送模块,用于根据该目标索引文件向服务器发送针对该目标数据文件的文件处理请求,以供该服务器根据该文件处理请求获取该目标元数据,并根据该目标元数据确定该目标数据文件的存储位置。
在其中一个实施例中,该目标索引文件包括对该目标元数据进行编码后得到的目标编码元数据,该发送模块,具体用于:从该目标索引文件中提取该目标编码元数据;根据该目标编码元数据生成并向该服务器发送该文件处理请求,其中,该文件处理请求携带该目标编码元数据。
在其中一个实施例中,该目标索引文件为m3u8文件,该目标数据文件为ts文件。
第七方面,提供了一种文件存储装置,该装置包括:
接收模块,用于接收并解析客户端上传的目标数据文件,得到该目标数据文件的目标元数据;
获取模块,用于基于该目标元数据获取目标索引文件,其中,该目标索引文件包括该目标元数据和该目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对该目标数据文件执行打开操作;
存储模块,用于存储该目标数据文件以及该目标索引文件。
在其中一个实施例中,该接收模块,还用于:接收该客户端发送的文件上传请求,该文件上传请求中携带该目标数据文件的类型标识;根据该目标数据文件的类型标识确定该目标数据文件是否为预设文件类型;
对应地,该获取模块,具体用于:若该目标数据文件为该预设文件类型,则基于该目标元数据获取目标索引文件。
在其中一个实施例中,该获取模块,具体用于:对该目标元数据进行编码,得到目标编码元数据;基于该目标编码元数据获取该目标索引文件。
在其中一个实施例中,该获取模块,具体用于:将该目标编码元数据封装至该客户端预先上传的初始索引文件中,得到该目标索引文件。
在其中一个实施例中,该初始索引文件包括该目标数据文件的标识,该获取模块,具体用于:将该目标编码元数据封装至该目标数据文件的标识之前,得到该目标索引文件。
在其中一个实施例中,该目标数据文件为多个,该初始索引文件包括多个该目标数据文件的标识;该获取模块,具体用于:将各该目标数据文件的目标编码元数据对应封装至各该目标数据文件的标识之前,得到该目标索引文件。
在其中一个实施例中,该获取模块,具体用于:将该目标编码元数据发送至该客户端,以触发该客户端将该目标编码元数据封装至初始索引文件中,得到该目标索引文件;接收该客户端发送的该目标索引文件。
在其中一个实施例中,该目标索引文件为m3u8文件,该目标数据文件为ts文件。
第八方面,提供了一种文件存储装置,该装置包括:
发送模块,用于向服务器发送目标数据文件,以触发该服务器解析该目标数据文件,得到该目标元数据;
接收模块,用于接收该服务器发送的该目标元数据;
获取模块,用于根据该目标元数据获取该目标索引文件;
该发送模块,还用于将该目标索引文件发送至该服务器,以供该服务器存储该目标数据文件和该目标索引文件,该目标索引文件包括该目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对该目标数据文件执行打开操作。
在其中一个实施例中,该发送模块,还用于:向该服务器发送文件上传请求,该文件上传请求中携带该目标数据文件的类型标识;其中,该文件上传请求用于触发该服务器在根据该目标数据文件的类型标识确定该目标数据文件为预设文件类型的情况下,向客户端发送该目标元数据。
在其中一个实施例中,该接收模块,具体用于:接收该服务器发送的对该目标元数据进行编码后得到的目标编码元数据。
在其中一个实施例中,该获取模块,具体用于:将该目标编码元数据封装至初始索引文件中,得到该目标索引文件。
在其中一个实施例中,该初始索引文件包括该目标数据文件的标识,该获取模块,具体用于:将该目标编码元数据封装至该目标数据文件的标识之前,得到该目标索引文件。
在其中一个实施例中,该目标数据文件为多个,该初始索引文件包括多个该目标数据文件的标识;该获取模块,具体用于:将各该目标数据文件的目标编码元数据对应封装至各该目标数据文件的标识之前,得到该目标索引文件。
在其中一个实施例中,该目标索引文件为m3u8文件,该目标数据文件为ts文件。
第九方面,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行该计算机程序时实现上述第一方面至第四方面中任一项所述的方法的步骤。
第十方面,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面至第四方面中任一项所述的方法的步骤。
上述文件定位方法、文件存储方法、装置、设备和存储介质,服务器获取目标数据文件的目标元数据,并根据该目标元数据确定目标数据文件的存储位置,其中,该目标元数据包含在目标索引文件中,且,该目标索引文件包括目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对目标数据文件执行打开操作,由于目标数据文件的目标元数据包含在目标索引文件中,因此,目标数据文件的目标元数据就不需要单独进行存储,而是可以作为目标索引文件的一部分随目标索引文件进行存储,在对目标数据文件的存储位置进行定位的时候只需要基于目标索引文件获取该目标元数据即可,正是因为目标数据文件的目标元数据不需要单独存储,因此,可以减轻目标元数据存储所带来的硬件成本以及运维成本,其中,在目标数据文件为ts文件,目标索引文件为m3u8文件的情况下,即可实现减轻ts文件的元数据存储所带来的硬件成本以及运维成本的效果。
附图说明
图1为一个实施例中文件定位方法的应用环境图;
图2为一个实施例中文件定位方法的流程示意图;
图3为一个实施例中文件定位方法的流程示意图;
图4为一个实施例中文件定位方法的流程示意图;
图5为一个实施例中文件定位方法的流程示意图;
图6为一个实施例中文件定位方法的流程示意图;
图7为一个实施例中文件定位方法的流程示意图;
图8为一个实施例中文件存储方法的流程示意图;
图9为一个实施例中文件存储方法的流程示意图;
图10为一个实施例中文件存储方法的流程示意图;
图11为一个实施例中文件存储方法的流程示意图;
图12为一个实施例中文件存储方法的流程示意图;
图13为一个实施例中文件存储方法的流程示意图;
图14为一个实施例中文件定位装置的结构框图;
图15为一个实施例中文件定位装置的结构框图;
图16为一个实施例中文件定位装置的结构框图;
图17为一个实施例中文件存储装置的结构框图;
图18为一个实施例中文件存储装置的结构框图;
图19为一个实施例中计算机设备的内部结构图;
图20为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
对于分布式文件存储系统来说,其一般需要进行两种类型数据的存储,分别为文件本身的存储以及文件元数据的存储,其中,文件的元数据是用于描述文件的数据,例如,文件的元数据可以包括文件的大小、文件的上传时间等等。在实际应用中,分布式文件存储系统一般采用多副本机制或者EC(英文:Erasure Code;中文:纠删码)机制等存储文件本身,一般基于分布式数据库或者内存元数据管理组件来存储文件的元数据,其中,HDFS分布式文件存储系统中的NameNode就是一种典型的存储文件元数据的方式。
在实际应用中,分布式文件存储系统一般需要根据文件的元数据来定位文件的存储位置,从而对文件进行相关操作。
通常情况下,文件的元数据可以用key字典来描述:
local key={
bucket_id=bucket_id,//文件桶的id
key=key_name, //文件名
ts=file_ts, //文件上传时间
is_del=0, //文件是否删除
owner=owner, //文件的所属者
sha1=file_sha1, //文件的摘要sha1
ver=file_ver, //文件的版本号
md5=file_md5, //文件的摘要md5
size=file_size, //文件的大小
group_id=group_id, //文件存储组id
}。
在定位文件存储位置的过程中,分布式文件存储系统一般可以先根据bucket_id以及key查询到key字典,而后,基于key字典包括的信息得到文件的存储位置。
其中,示例性地,基于key字典包括的信息得到文件的存储位置的过程包括:从key字典中获取group_id、sha1以及ver,而后,根据group_id、sha1以及ver拼接得到文件的存储位置。
其中,拼接过程可以包括:利用group_id查询得到存储文件的磁盘的唯一标识pid,而后,基于磁盘的唯一标识pid查询得到磁盘所在服务器的访问ip,接着,利用sha1和ver拼接得到服务器中文件的文件名filename,最后,将磁盘所在服务器的访问ip、磁盘的唯一标识pid、group_id以及服务器中文件的文件名filename进行拼接,得到文件的存储位置。
该拼接过程可以采用如下的代码语言进行描述:
pid=get_partition_id_by_group_id(group_id);
ip=get_ip_by_pid(pid);
filename=sha1+"_"+ver;
url=http://ip/pid/group_id/filename。
当前,随着流媒体和直播的兴起,大部分视频文件都基于HLS(英文全称:HTTPLive Streaming;中文全称:基于HTTP的自适应码率流媒体传输协议)协议存储,HLS协议涉及到两种类型的文件,一种为m3u8类型,一种为ts类型,其中,ts文件是一种视频分片文件,m3u8文件是一种ts文件的索引文件,一般来说,m3u8文件可以看成是ts文件的播放列表文件,其用于指示ts文件的播放顺序。
如下所示为一个示例性的m3u8文件:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:3
#EXT-X-MEDIA-SEQUENCE:1
#EXTINF:2.083333,
001.ts
#EXTINF:2.083333,
002.ts
#EXTINF:2.083333,
003.ts
#EXTINF:1.391667,
004.ts
#EXTINF:1.808333,
005.ts
#EXT-X-ENDLIST。
其中,001.ts、002.ts、003.ts、004.ts以及005.ts均是ts文件的文件名,该m3u8文件指示的ts文件的播放顺序为001.ts、002.ts、003.ts、004.ts、005.ts,在m3u8文件中各ts文件对应的#EXTINF字段为该ts文件的时长,例如,#EXTINF:2.083333指的是001.ts文件的时长为2.083333s,另外,#EXTM3U为m3u8文件的文件头,EXT-X-VERSION为m3u8文件的版本号,EXT-X-TARGETDURATION为m3u8文件所指示的各ts文件的最大允许时长,#EXT-X-MEDIA-SEQUENCE为m3u8文件所指示的播放列表中第一个ts文件,#EXT-X-ENDLIST为m3u8文件的文件尾。
在现有技术中,分布式文件存储系统一般需要存储ts文件、m3u8文件、ts文件的元数据以及m3u8文件的元数据,分布式文件存储系统基于m3u8文件的元数据来定位m3u8文件的存储位置,基于ts文件的元数据来定位ts文件的存储位置。
然而,从上文中m3u8文件的内容来看,一般来说,经由HLS协议编码得到的ts文件的数量是m3u8文件的数倍甚至是数十倍之多,换言之,经由HLS协议编码得到的ts文件的数量十分庞大,相对应地,ts文件的元数据的数量也十分庞大,存储数量庞大的ts文件元数据需要分布式文件存储系统在元数据的存储上付出较大的研发成本、硬件成本以及运维成本。
有鉴于此,为了降低ts文件元数据存储所带来的研发成本、硬件成本以及运维成本,本申请实施例提供了一种文件定位方法、文件存储方法、装置、设备和存储介质。
下面,将对本申请实施例提供的技术方案所涉及到的实施环境进行简要说明,如图1所示,该实施环境可以包括分布式文件存储系统101、文件上传客户端102以及文件处理客户端103。
其中,该分布式文件存储系统101可以为一服务器集群,该服务器集群可以包括多个服务器。
该文件上传客户端102可以与该多个服务器中的一个或者多个进行通信,以向分布式文件存储系统101上传文件,其中,上传的文件可以为ts文件以及m3u8文件。
该文件处理客户端103也可以与该多个服务器中的一个或者多个进行通信,以请求分布式文件存储系统101对其存储的文件进行处理,其中,这里所谓的“处理”可以包括下载、删除等,本申请实施例对此不作具体限定,分布式文件存储系统101中存储的文件可以是文件上传客户端102所上传的文件,可以包括ts文件以及m3u8文件。
需要指出的是,上文所述的文件上传客户端102以及文件处理客户端103可以为同一客户端,也即是,同一客户端既可以向分布式文件存储系统101上传文件,又可以请求分布式文件存储系统101对其存储的文件进行处理。
还需要指出的是,上文所述的文件上传客户端102以及文件处理客户端103可以为智能手机、平板电脑、笔记本电脑、台式电脑、智能电视、可穿戴设备、车载设备等,本申请实施例不对文件上传客户端102以及文件处理客户端103的具体类型进行限定。
请参考图2,在本申请的一个实施例中,提供了一种文件定位方法,以该方法应用于图1中分布式文件存储系统101所包括的服务器为例进行说明,如图2所示,该文件定位方法包括以下步骤:
步骤201、服务器获取目标数据文件的目标元数据。
在本申请的可选实施例中,服务器中可以存储有目标数据文件以及目标索引文件,其中,目标数据文件的目标元数据可以包含在目标索引文件中。
需要指出的是,在本申请的可选实施例中,目标元数据包含在目标索引文件中指的可以是:编码后的目标元数据包含在目标索引文件中,为了方便说明,下文中统一将编码后的目标元数据称为目标编码元数据。
此外,目标索引文件还可以包括目标数据文件的描述信息,该描述信息用于供客户端根据描述信息对目标数据文件执行打开操作,在本申请的可选实施例中,该目标数据文件的描述信息例如可以是目标数据文件的播放顺序信息。
需要指出的是,上文所述的目标数据文件以及目标索引文件可以是基于一协议对多媒体文件进行编码后得到的,可选的,该目标索引文件可以为m3u8文件,该目标数据文件可以为ts文件。
在服务器需要对目标数据文件进行存储位置的定位时,服务器可以获取该目标数据文件的目标元数据,其中,服务器所获取到的目标元数据可以是基于目标索引文件得到的。
由于目标索引文件包含有可供客户端对目标数据文件执行打开操作的描述信息,因此,通常情况下,不会脱离开目标索引文件单独去获取目标数据文件,否则,目标数据文件就无法正确地打开,一般来说,会先获取目标索引文件,再获取目标数据文件,基于此,可以将目标数据文件的目标元数据包含在目标索引文件中,这样,在获取目标索引文件时,即可基于该目标索引文件获取目标元数据,在后续步骤中,可以再基于该目标元数据确定目标数据文件的存储位置。
步骤202、服务器根据目标元数据确定目标数据文件的存储位置。
在本申请的可选实施例中,目标元数据结构可以采用ncs字典描述:
local ncs={
group_id=group_id,//目标数据文件存储组id
sha1=file_sha1, //目标数据文件的摘要sha1
ver=file_ver, //目标数据文件的版本号
size=file_size, //目标数据文件的标准数据量大小
}
需要说明的是,上述ncs字典仅仅是示例性的,实际应用中,ncs字典可以包括比上文所述更多的内容或者更少的内容。
在获得ncs字典之后,服务器可以基于该ncs字典包括的信息得到目标数据文件的存储位置,可选的,服务器可以从ncs字典中获取group_id、sha1以及ver,而后,根据group_id、sha1以及ver拼接得到目标数据文件的存储位置。
其中,拼接过程可以包括:利用group_id查询得到存储目标数据文件的磁盘的唯一标识pid,而后,基于磁盘的唯一标识pid查询得到磁盘所在服务器的访问ip,接着,利用sha1和ver拼接得到服务器中目标数据文件的文件名filename,最后,将磁盘所在服务器的访问ip、磁盘的唯一标识pid、group_id以及服务器中目标数据文件的文件名filename进行拼接,得到目标数据文件的存储位置。
在本实施例中,服务器获取目标数据文件的目标元数据,并根据该目标元数据确定目标数据文件的存储位置,其中,该目标元数据包含在目标索引文件中,且,该目标索引文件包括目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对目标数据文件执行打开操作,由于目标数据文件的目标元数据包含在目标索引文件中,因此,目标数据文件的目标元数据就不需要单独进行存储,而是可以作为目标索引文件的一部分随目标索引文件进行存储,在对目标数据文件的存储位置进行定位的时候只需要基于目标索引文件获取该目标元数据即可,正是因为目标数据文件的目标元数据不需要单独存储,因此,可以减轻目标元数据存储所带来的硬件成本以及运维成本,其中,在目标数据文件为ts文件,目标索引文件为m3u8文件的情况下,即可实现减轻ts文件的元数据存储所带来的硬件成本以及运维成本的效果。
本申请的可选实施例中,在需要对目标数据文件进行处理的情况下,文件处理客户端可以基于目标索引文件向服务器发送针对目标数据文件的文件处理请求,其中,该文件处理请求可以为下载请求或者删除请求,该文件处理请求可以携带从目标索引文件中得到的目标元数据。
服务器在接收到该文件处理请求之后,可以对该文件处理请求进行解析,从而获取该目标元数据,而后,再根据该目标元数据确定目标数据文件的存储位置,从而在确定目标数据文件的存储位置之后,根据目标数据文件的存储位置,对目标数据文件进行相应的处理(例如,下载或者删除)。
需要指出的是,在本申请的可选实施例中,分布式文件存储系统可以提供文件下载接口REST.GET.OBJECT以及文件删除接口REST.DELETE.OBJECT。
在需要对目标数据文件进行下载的情况下,文件处理客户端通过该文件下载接口REST.GET.OBJECT向分布式文件存储系统中的服务器发送下载请求,服务器在基于该下载请求获取目标元数据,并根据目标元数据确定目标数据文件的存储位置之后,可以根据目标数据文件的存储位置获取目标数据文件,并将目标数据文件发送至文件处理客户端。可选的,为了表明该下载请求是针对目标数据文件所属文件类型的请求,该下载请求可以包括特定标识,例如,该下载请求可以包括/ncs前缀标识。
此外,如上文对ncs字典的说明可知,目标元数据可以包括目标数据文件的标准数据量大小file_size,则在根据目标数据文件的存储位置获取目标数据文件之后,服务器可以检测获取到的目标数据文件的数据量大小与标准数据量大小是否一致,若一致则说明获取到了正确的目标数据文件,在这种情况下,服务器可以将目标数据文件发送至文件处理客户端,否则,服务器可以重新执行根据目标数据文件的存储位置获取目标数据文件的技术过程,直至获取到的目标数据文件的数据量大小与标准数据量大小一致为止,或者,直至获取目标数据文件的次数达到预设次数为止,这样,就可以保证能够将正确的目标数据文件发送至文件处理客户端,避免文件的误发送。
而在需要对目标数据文件进行删除的情况下,文件处理客户端可以通过该文件删除接口REST.DELETE.OBJECT向分布式文件存储系统中的服务器发送删除请求,服务器在基于该删除请求获取目标元数据,并根据目标元数据确定目标数据文件的存储位置之后,可以根据目标数据文件的存储位置,对目标数据文件进行删除处理。可选的,为了表明该删除请求是针对目标数据文件所属文件类型的请求,该删除请求可以包括特定标识,例如,该删除请求可以包括/ncs前缀标识。
请参考图3,在本申请的可选实施例中,服务器获取目标元数据的技术过程包括以下步骤:
步骤301、服务器向文件处理客户端发送目标索引文件。
文件处理客户端在向服务器发送文件处理请求之前,可以先向服务器请求下载目标索引文件,服务器在接收到文件处理客户端的请求之后,可以将该目标索引文件发送至文件处理客户端。
需要指出的是,在步骤301中,服务器在接收到文件处理客户端的请求之后,可以先根据文件处理客户端的请求获取目标索引文件的元数据,而后,根据目标索引文件的元数据定位目标索引文件的存储位置,接着,根据目标索引文件的存储位置获取目标索引文件,并将获取到的目标索引文件发送至文件处理客户端。
其中,如上文所述,该目标索引文件可以包含有目标元数据,具体地,该目标索引文件可以包含有目标编码元数据。
服务器向文件处理客户端发送目标索引文件可以触发文件处理客户端根据该目标索引文件获取目标编码元数据,并根据该目标编码元数据生成以及向服务器发送文件处理请求。
步骤302、服务器接收并解析文件处理客户端发送的文件处理请求,得到目标编码元数据。
步骤303、服务器对目标编码元数据进行解码,得到目标元数据。
请参考图4,在本申请的一个实施例中,提供了一种文件定位方法,以该方法应用于图1中文件处理客户端103进行说明,如图4所示,该文件定位方法包括以下步骤:
步骤401、文件处理客户端获取目标索引文件。
如上文所述,文件处理客户端在向服务器发送文件处理请求之前,可以先向服务器请求下载目标索引文件,服务器在接收到文件处理客户端的请求之后,可以将该目标索引文件发送至文件处理客户端。
步骤402、文件处理客户端根据目标索引文件向服务器发送针对目标数据文件的文件处理请求。
如上文所述,该文件处理请求可以包括下载请求或者删除请求,服务器可以根据该文件处理请求获取目标元数据,并根据目标元数据确定目标数据文件的存储位置,从而对文件处理客户端发送的文件处理请求进行响应。
请参考图5,其示出了本申请实施例提供的一种向服务器发送文件处理请求的可选技术过程的流程图,如图5所示,该技术过程包括以下内容:
步骤501、文件处理客户端从目标索引文件中提取目标编码元数据。
步骤502、文件处理客户端根据目标编码元数据生成并向服务器发送文件处理请求,其中,该文件处理请求携带目标编码元数据。
请参考图6,其示出了本申请实施例提供的一种文件定位方法的流程图,以该方法应用于图1中文件处理客户端103以及分布式文件存储系统101所包括的服务器进行说明,如图6所示,该文件定位方法包括以下步骤:
步骤601、文件处理客户端向服务器发送针对目标索引文件的下载请求。
步骤602、服务器获取目标索引文件,并将该目标索引文件发送至文件处理客户端。
步骤603、文件处理客户端从目标索引文件中提取目标编码元数据。
步骤604、文件处理客户端根据目标编码元数据生成并向服务器发送文件处理请求。
该文件处理请求可以为下载请求,也可以为删除请求,该文件处理请求可以包括该目标编码元数据。
步骤605、服务器接收并解析文件处理请求,得到目标编码元数据。
步骤606、服务器对目标编码元数据进行解码,得到目标元数据。
步骤607、服务器根据目标元数据确定目标数据文件的存储位置。
步骤608、服务器根据目标数据文件的存储位置对文件处理请求进行响应。
其中,对文件处理请求进行响应包括:从目标数据文件的存储位置处获取目标数据文件,并将获取到的目标数据文件发送至文件处理客户端;根据目标数据文件的存储位置对目标数据文件进行删除处理。
请参考图7,其示出了在目标数据文件为ts文件,目标索引文件为m3u8文件的情况下,本申请实施例提供的一种文件定位方法的流程图,以该方法应用于图1中文件处理客户端103以及分布式文件存储系统101所包括的服务器进行说明,如图7所示,该文件定位方法包括以下步骤:
步骤701、文件处理客户端向服务器发送针对m3u8文件的下载请求。
其中,该下载请求可以包括m3u8文件的bucket_id(文件桶id)以及key(文件名)。
该下载请求可以为:https://ss.bscstorage.com/test_bucket/testa.m3u8,其中,test_bucket即为m3u8文件的bucket_id,testa.m3u8即为m3u8文件的key。
步骤702、服务器根据针对m3u8文件的下载请求获取m3u8文件的元数据。
可选的,服务器可以基于下载请求中包括m3u8文件的bucket_id以及key查询到m3u8文件的元数据。
其中,m3u8文件的元数据可以为:
local key={
bucket_id=test_bucket,//文件桶的id
key=testa.m3u8, //文件名
ts=file_ts, //文件上传时间
is_del=0, //文件是否删除
owner=owner, //文件的所属者
sha1=file_sha1, //文件的摘要sha1
ver=file_ver, //文件的版本号
md5=file_md5, //文件的摘要md5
size=file_size, //文件的大小
group_id=group_id, //文件存储组id
}。
步骤703、服务器根据m3u8文件的元数据定位m3u8文件的存储位置,并根据m3u8文件的存储位置获取m3u8文件。
服务器可以从m3u8文件的元数据中获取group_id、sha1以及ver,而后,根据group_id、sha1以及ver拼接得到m3u8文件的存储位置。
其中,拼接过程可以包括:利用group_id查询得到存储m3u8文件的磁盘的唯一标识pid,而后,基于磁盘的唯一标识pid查询得到磁盘所在服务器的访问ip,接着,利用sha1和ver拼接得到服务器中m3u8文件的文件名filename,最后,将磁盘所在服务器的访问ip、磁盘的唯一标识pid、group_id以及服务器中m3u8文件的文件名filename进行拼接,得到m3u8文件的存储位置。
步骤704、服务器向文件处理客户端发送针对m3u8文件的HTTP响应。
其中,该HTTP响应的响应状态码可以为200,该HTTP响应可以携带m3u8文件,其中,该m3u8文件可以为:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:2.083333,
/ncs/<meta_string_001>/001.ts
#EXTINF:2.083333,
/ncs/<meta_string_002>/002.ts
#EXT-X-ENDLIST。
其中,该m3u8文件包括001.ts的目标编码元数据meta_string_001,还包括002.ts的目标编码元数据meta_string_002。
步骤705、文件处理客户端向服务器发送针对001.ts的第一文件处理请求。
文件处理客户端在接收到m3u8文件之后,可以对该m3u8文件进行解析,从而得到001.ts的url(也即标识001.ts)、001.ts的目标编码元数据meta_string_001、002.ts的url(也即标识002.ts)、002.ts的目标编码元数据meta_string_002。而后,文件处理客户端可以向服务器发送针对001.ts的第一文件处理请求。其中,该第一文件处理请求携带001.ts的目标编码元数据以及001.ts的url。可选的,该第一文件处理请求可以为:
https://ss.bscstorage.com/test_bucket/ncs/meta_string_001/001.ts。
步骤706、服务器在接收到第一文件处理请求之后,对001.ts的目标编码元数据进行解码,得到001.ts的目标元数据。
其中,001.ts的目标元数据可以为:
local ncs={
group_id=group_id,
sha1=file_sha1,
ver=file_ver,
size=file_size,
}。
步骤707、服务器根据001.ts的目标元数据定位001.ts的存储位置,并根据001.ts的存储位置对第一文件处理请求进行响应。
服务器可以从001.ts的目标元数据中获取group_id、sha1以及ver,而后,根据group_id、sha1以及ver拼接得到001.ts的存储位置。
其中,拼接过程可以包括:利用group_id查询得到存储001.ts的磁盘的唯一标识pid,而后,基于磁盘的唯一标识pid查询得到磁盘所在服务器的访问ip,接着,利用sha1和ver拼接得到服务器中001.ts的文件名filename,最后,将磁盘所在服务器的访问ip、磁盘的唯一标识pid、group_id以及服务器中001.ts的文件名filename进行拼接,得到001.ts的存储位置。
步骤708、文件处理客户端向服务器发送针对002.ts的第二文件处理请求。
其中,该第二文件处理请求携带002.ts的目标编码元数据以及002.ts的url,可选的,该第二文件处理请求可以为:
https://ss.bscstorage.com/test_bucket/ncs/meta_string_002/002.ts。
步骤709、服务器在接收到第二文件处理请求之后,对002.ts的目标编码元数据进行解码,得到002.ts的目标元数据。
其中,002.ts的目标元数据可以为:
local ncs={
group_id=group_id,
sha1=file_sha1,
ver=file_ver,
size=file_size,
}。
步骤710、服务器根据002.ts的目标元数据定位002.ts的存储位置,并根据0012.ts的存储位置对第二文件处理请求进行响应。
服务器可以从002.ts的目标元数据中获取group_id、sha1以及ver,而后,根据group_id、sha1以及ver拼接得到002.ts的存储位置。
其中,拼接过程可以包括:利用group_id查询得到存储002.ts的磁盘的唯一标识pid,而后,基于磁盘的唯一标识pid查询得到磁盘所在服务器的访问ip,接着,利用sha1和ver拼接得到服务器中002.ts的文件名filename,最后,将磁盘所在服务器的访问ip、磁盘的唯一标识pid、group_id以及服务器中002.ts的文件名filename进行拼接,得到002.ts的存储位置。
如上文所述,在执行图2至图8所示的各步骤之前,分布式文件存储系统所包括的服务器中已经存储有目标数据文件以及目标索引文件了,其中,该目标数据文件以及目标索引文件可以是文件上传客户端上传至分布式文件存储系统所包括的服务器中的。下面,本申请实施例将对这一技术过程进行简要说明:
请参考图8,在本申请的一个实施例中,提供了一种文件存储方法,以该方法应用于图1中分布式文件存储系统101所包括的服务器为例进行说明,如图8所示,该文件存储方法包括以下步骤:
步骤801、服务器接收并解析文件上传客户端上传的目标数据文件,得到目标数据文件的目标元数据。
在本申请的可选实施例中,文件上传客户端可以向服务器发送针对目标数据文件的文件上传请求,并向服务器发送目标数据文件。服务器在接收到目标数据文件之后,可以通过对该目标数据文件进行解析的方式来得到该目标数据的目标元数据。
步骤802、服务器基于目标元数据获取目标索引文件。
其中,如上文所述,该目标索引文件包含该目标元数据。
可选的,上文所述的文件上传请求可以携带目标数据文件的类型标识,服务器在接收到该文件上传请求之后,可以根据目标数据文件的类型标识检测目标数据文件是否为预设文件类型,其中,预设文件类型可以为ts类型,若目标数据文件为预设文件类型,则服务器可以基于目标元数据获取目标索引文件。
其中,可选的,服务器可以对目标元数据进行编码,得到目标编码元数据,而后,基于目标编码元数据来获取目标索引文件。
下面,本申请实施例将提供一种示例性地对目标元数据进行编码的方式,该方式包括:
获取预设的前导数值和加密密钥,利用预设加密算法对该前导数值、该目标元数据以及该加密密钥进行加密处理,得到目标编码元数据,其中,该预设加密算法可以为md5算法。其中,对目标元数据进行编码的过程可以采用下述代码语言进行描述:
ncs_format='>I4 c16 c20 c4 I4 c6 I4'
version="1"//算法版本,固定值1
checsum=md5(prefix..ncs_fromat..secert_key)[:6]//secert为加密秘钥
meta_string=base64(<version>..ncs_format..<checksum>)//ts文件元数据编码后的字符串。
由于目标元数据为敏感的数据,为了确保数据安全,一般并不允许客户端获取目标元数据,而如上文所述,在对目标数据文件进行处理的过程中,文件处理客户端需要获取目标索引文件,为了保证目标元数据的安全,在本申请实施例中,可以将该目标元数据进行编码,并将编码后得到的目标编码元数据存储于目标索引文件中,这样,即使文件处理客户端获取了目标索引文件,也不能够获取目标元数据,而是只能获取目标编码元数据,因此,可以保证目标元数据的安全。
步骤803、服务器存储目标数据文件以及目标索引文件。
请参考图9,其示出了一种示例性地服务器基于目标元数据获取目标索引文件的技术过程,如图9所示,该技术过程包括以下步骤:
步骤901、服务器接收文件上传客户端上传的初始索引文件。
其中,该初始索引文件可以包括目标数据文件的描述信息,该初始索引文件可以为m3u8文件。
步骤902、服务器将目标编码元数据封装至中文件上传客户端预先上传的初始索引文件中,得到目标索引文件。
其中,初始索引文件包括目标数据文件的标识,服务器可以将目标编码元数据封装至目标数据文件的标识之前,从而得到目标索引文件。
可选的,在本申请实施例中,目标数据文件可以为多个,初始索引文件可以包括该多个目标数据文件的标识,在这种情况下,服务器可以将各目标数据文件的目标编码元数据对应封装至各目标数据文件的标识之前,得到目标索引文件。
下面,本申请实施例将以目标索引文件为m3u8文件为例,示出一种示例性的目标索引文件:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:2.083333,
/ncs/<meta_string_001>/001.ts
#EXTINF:2.083333,
/ncs/<meta_string_002>/002.ts
#EXTINF:2.083333,
/ncs/<meta_string_003>/003.ts
#EXTINF:1.391667,
/ncs/<meta_string_004>/004.ts
#EXTINF:1.808333,
/ncs/<meta_string_005>/005.ts
#EXT-X-ENDLIST。
其中,该目标索引文件包括001.ts、002.ts、003.ts、004.ts以及005.ts的标识,该目标索引文件中的meta_string_001即为001.ts的目标编码元数据,其被封装于001.ts的标识之前,meta_string_002即为002.ts的目标编码元数据,其被封装于002.ts的标识之前,meta_string_003即为003.ts的目标编码元数据,其被封装于003.ts的标识之前,meta_string_004即为004.ts的目标编码元数据,其被封装于004.ts的标识之前,meta_string_005即为005.ts的目标编码元数据,其被封装于005.ts的标识之前。
请参考图10,其示出了一种示例性地服务器基于目标元数据获取目标索引文件的技术过程,如图10所示,该技术过程包括以下步骤:
步骤1001、服务器将目标编码元数据发送至文件上传客户端,以触发文件上传客户端将目标编码元数据封装至初始索引文件中,得到目标索引文件。
其中,文件上传客户端将目标编码元数据封装至初始索引文件中的技术过程与服务器将目标编码元数据封装至初始索引文件中的技术过程同理,本申请实施例在此不再赘述。
步骤1002、服务器接收文件上传客户端发送的目标索引文件。
请参考图11,在本申请的一个实施例中,提供了一种文件存储方法,以该方法应用于图1中文件上传客户端102为例进行说明,如图11所示,该文件存储方法包括以下步骤:
步骤1101、文件上传客户端向服务器发送目标数据文件,以触发服务器解析目标数据文件,得到目标元数据。
如上文所述,文件上传客户端在向服务器发送目标数据文件时,还可以向服务器发送针对目标数据文件的文件上传请求,其中,该文件上传请求中携带目标数据文件的类型标识。
步骤1102、文件上传客户端接收服务器发送的目标元数据。
如上文所述,服务器在基于目标数据文件解析得到目标元数据之后,可以对该目标元数据进行编码,得到目标编码元数据,并将该目标编码元数据发送至文件上传客户端。则对应地,在步骤1102中,文件上传客户端可以接收服务器发送的目标编码元数据。
步骤1103、文件上传客户端根据目标元数据获取目标索引文件,并将目标索引文件发送至服务器。
如上文所述,服务器在接收到该目标数据文件以及目标索引文件之后,可以对该目标数据文件以及该目标索引文件进行存储,。
在本申请的可选实施例中,文件上传客户端根据目标元数据获取目标索引文件可以包括:文件上传客户端将目标编码元数据封装至初始索引文件中,得到目标索引文件。
其中,文件上传客户端将目标编码元数据封装至初始索引文件中的技术过程与服务器将目标编码元数据封装至初始索引文件中的技术过程同理,本申请实施例在此不再赘述。
请参考图12,其示出了本申请实施例提供的一种文件存储方法的流程图,以该方法应用于图1中文件上传客户端102以及分布式文件存储系统101所包括的服务器进行说明,如图12所示,该文件存储方法包括以下步骤:
步骤1201、文件上传客户端向服务器发送目标数据文件,并向服务器发送针对目标数据文件的文件上传请求。
步骤1202、服务器解析目标数据文件,得到目标数据文件的目标元数据,并存储该目标数据文件。
步骤1203、服务器根据文件上传请求携带的目标数据文件的类型标识检测目标数据文件是否为预设文件类型。
步骤1204、若目标数据文件为预设文件类型,则服务器对该目标元数据进行编码,得到目标编码元数据。
步骤1205、服务器将该目标编码元数据发送至文件上传客户端。
步骤1206、文件上传客户端将该目标编码元数据封装至初始索引文件中,得到目标索引文件。
步骤1207、文件上传客户端向服务器发送该目标索引文件。
步骤1208、服务器接收并存储该目标索引文件。
请参考图13,其示出了在目标数据文件为ts文件,目标索引文件为m3u8文件的情况下,本申请实施例提供的一种文件存储方法的流程图,以该方法应用于图1中文件上传客户端102以及分布式文件存储系统101所包括的服务器进行说明,如图13所示,该文件存储方法包括以下步骤:
步骤1301、文件上传客户端向服务器上传001.ts,并向服务器发送针对001.ts的文件上传请求。
其中,该文件上传请求可以为https://ss.bscstorage.com/test_bucket/ncs/001.ts,其中,该文件上传请求中的ncs字段用于指示文件上传客户端所上传的001.ts为ts文件类型。
步骤1302、服务器存储该001.ts,并解析该001.ts得到001.ts的目标元数据。
其中,001.ts的目标元数据可以为:
local ncs={
group_id=group_id,
sha1=file_sha1,
ver=file_ver,
size=file_size,
}。
步骤1303、服务器对001.ts的目标元数据进行编码,得到001.ts的目标编码元数据。
其中,该001.ts的目标编码元数据可以表示为:meta_string_001。
步骤1304、服务器向文件上传客户端发送001.ts的目标编码元数据。
其中,服务器可以通过HTTP响应将001.ts的目标编码元数据发送至文件上传客户端,其中,该HTTP响应的响应头可以为x-meta-ncstorage,该HTTP响应可以为:x-meta-ncstorage:/ncs/meta_string_001/001.ts。
步骤1305、文件上传客户端将001.ts的目标编码元数据封装于m3u8文件中。
其中,封装后的m3u8文件可以为:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:2.083333,
/ncs/<meta_string_001>/001.ts
#EXTINF:2.083333,
002.ts
#EXT-X-ENDLIST。
步骤1306、文件上传客户端向服务器上传002.ts,并向服务器发送针对002.ts的文件上传请求。
其中,该文件上传请求可以为https://ss.bscstorage.com/test_bucket/ncs/002.ts,其中,该文件上传请求中的ncs字段用于指示文件上传客户端所上传的002.ts为ts文件类型。
步骤1307、服务器存储该002.ts,并解析该002.ts得到002.ts的目标元数据。
其中,002.ts的目标元数据可以为:
local ncs={
group_id=group_id,
sha1=file_sha1,
ver=file_ver,
size=file_size,
}。
步骤1308、服务器对002.ts的目标元数据进行编码,得到002.ts的目标编码元数据。
其中,该002.ts的目标编码元数据可以表示为:meta_string_002。
步骤1309、服务器向文件上传客户端发送002.ts的目标编码元数据。
其中,服务器可以通过HTTP响应将002.ts的目标编码元数据发送至文件上传客户端,其中,该HTTP响应的响应头可以为x-meta-ncstorage,该HTTP响应可以为:x-meta-ncstorage:/ncs/meta_string_002/002.ts。
步骤1310、文件上传客户端将002.ts的目标编码元数据封装于m3u8文件中。
其中,封装后的m3u8文件可以为:
#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:3
#EXT-X-MEDIA-SEQUENCE:0
#EXTINF:2.083333,
/ncs/<meta_string_001>/001.ts
#EXTINF:2.083333,
/ncs/<meta_string_002>/002.ts
#EXT-X-ENDLIST。
步骤1311、文件上传客户端将m3u8文件上传至服务器。
步骤1312、服务器存储该m3u8文件。
步骤1313、服务器向文件上传客户端发送上传完成的HTTP响应。
应该理解的是,虽然图2-13的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-13中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图14所示,提供了一种文件定位装置1400,该文件定位装置1400包括:获取模块1401以及确定模块1402。
该获取模块1401,用于获取目标数据文件的目标元数据,其中,该目标元数据包含在目标索引文件中,且,该目标索引文件包括该目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对该目标数据文件执行打开操作。
该确定模块1402,用于根据该目标元数据确定该目标数据文件的存储位置。
在本申请的一个可选实施例中,该获取模块1401,具体用于:接收并解析该客户端发送的针对该目标数据文件的文件处理请求,得到该目标元数据。
在本申请的一个可选实施例中,该文件处理请求携带目标编码元数据,该目标编码元数据是对该目标元数据编码后得到的,该获取模块1401,具体用于:接收并解析该文件处理请求,得到该目标编码元数据;对该目标编码元数据进行解码,得到该目标元数据。
在本申请的一个可选实施例中,该目标索引文件为m3u8文件,该目标数据文件为ts文件。
请参考图15,其示出了本申请实施例提供的领着一种文件定位装置1500的框图,如图15所示,该文件定位装置除了包括文件定位装置1400包括的各模块外,还包括第一发送模块1403、第二发送模块1404以及删除模块1405。
其中,在本申请的一个可选实施例中,该目标索引文件包括该目标编码元数据,该第一发送模块1403,用于向该客户端发送该目标索引文件,以触发该客户端根据该目标索引文件获取该目标编码元数据,并根据该目标编码元数据生成该文件处理请求。
在本申请的一个可选实施例中,该文件处理请求为下载请求,该第二发送模块1404,用于根据该目标数据文件的存储位置获取该目标数据文件,并将该目标数据文件发送至该客户端。
在本申请的一个可选实施例中,该目标元数据包括该目标数据文件的标准数据量大小,该第二发送模块1404,具体用于:若获取到的该目标数据文件的数据量大小与该标准数据量大小一致,则将该目标数据文件发送至该客户端。
在本申请的一个可选实施例中,该文件处理请求为删除请求,该删除模块1405,用于根据该目标数据文件的存储位置,对该目标数据文件进行删除处理。
关于文件定位装置的具体限定可以参见上文中对于文件定位方法的限定,在此不再赘述。上述文件定位装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,如图16所示,提供了一种文件定位装置1600,该文件定位装置1600包括:获取模块1601以及发送模块1602。
该获取模块1601,用于获取目标索引文件,该目标索引文件包括目标数据文件的目标元数据以及该目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对该目标数据文件执行打开操作。
该发送模块1602,用于根据该目标索引文件向服务器发送针对该目标数据文件的文件处理请求,以供该服务器根据该文件处理请求获取该目标元数据,并根据该目标元数据确定该目标数据文件的存储位置。
在本申请的一个可选实施例中,该目标索引文件包括对该目标元数据进行编码后得到的目标编码元数据,该发送模块1602,具体用于:从该目标索引文件中提取该目标编码元数据;根据该目标编码元数据生成并向该服务器发送该文件处理请求,其中,该文件处理请求携带该目标编码元数据。
在本申请的一个可选实施例中,该目标索引文件为m3u8文件,该目标数据文件为ts文件。
关于文件定位装置的具体限定可以参见上文中对于文件定位方法的限定,在此不再赘述。上述文件定位装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,如图17所示,提供了一种文件存储装置1700,该文件存储装置1700包括:接收模块1701、获取模块1702以及存储模块1703。
该接收模块1701,用于接收并解析客户端上传的目标数据文件,得到该目标数据文件的目标元数据。
该获取模块1702,用于基于该目标元数据获取目标索引文件,其中,该目标索引文件包括该目标元数据和该目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对该目标数据文件执行打开操作。
该存储模块1703,用于存储该目标数据文件以及该目标索引文件。
在本申请的一个可选实施例中,该接收模块1701,还用于:接收该客户端发送的文件上传请求,该文件上传请求中携带该目标数据文件的类型标识;根据该目标数据文件的类型标识确定该目标数据文件是否为预设文件类型。
对应地,该获取模块1702,具体用于:若该目标数据文件为该预设文件类型,则基于该目标元数据获取目标索引文件。
在本申请的一个实施例中,该获取模块1702,具体用于:对该目标元数据进行编码,得到目标编码元数据;基于该目标编码元数据获取该目标索引文件。
在本申请的一个可选实施例中,该获取模块1702,具体用于:将该目标编码元数据封装至该客户端预先上传的初始索引文件中,得到该目标索引文件。
在本申请的一个可选实施例中,该初始索引文件包括该目标数据文件的标识,该获取模块1702,具体用于:将该目标编码元数据封装至该目标数据文件的标识之前,得到该目标索引文件。
在本申请的一个可选实施例中,该目标数据文件为多个,该初始索引文件包括多个该目标数据文件的标识;该获取模块1702,具体用于:将各该目标数据文件的目标编码元数据对应封装至各该目标数据文件的标识之前,得到该目标索引文件。
在本申请的一个可选实施例中,该获取模块1702,具体用于:将该目标编码元数据发送至该客户端,以触发该客户端将该目标编码元数据封装至初始索引文件中,得到该目标索引文件;接收该客户端发送的该目标索引文件。
在本申请的一个可选实施例中,该目标索引文件为m3u8文件,该目标数据文件为ts文件。
关于文件存储装置的具体限定可以参见上文中对于文件存储方法的限定,在此不再赘述。上述文件存储装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,如图18所示,提供了一种文件存储装置1800,该文件存储装置1800包括:发送模块1801、接收模块1802以及获取模块1803。
该发送模块1801,用于向服务器发送目标数据文件,以触发该服务器解析该目标数据文件,得到该目标元数据。
该接收模块1802,用于接收该服务器发送的该目标元数据。
该获取模块1803,用于根据该目标元数据获取该目标索引文件。
该发送模块1801,还用于将该目标索引文件发送至该服务器,以供该服务器存储该目标数据文件和该目标索引文件,该目标索引文件包括该目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对该目标数据文件执行打开操作。
在本申请的一个可选实施例中,该发送模块1801,还用于:向该服务器发送文件上传请求,该文件上传请求中携带该目标数据文件的类型标识;其中,该文件上传请求用于触发该服务器在根据该目标数据文件的类型标识确定该目标数据文件为预设文件类型的情况下,向客户端发送该目标元数据。
在本申请的一个可选实施例中,该接收模块1802,具体用于:接收该服务器发送的对该目标元数据进行编码后得到的目标编码元数据。
在本申请的一个可选实施例中,该获取模块1803,具体用于:将该目标编码元数据封装至初始索引文件中,得到该目标索引文件。
在本申请的一个可选实施例中,该初始索引文件包括该目标数据文件的标识,该获取模块1803,具体用于:将该目标编码元数据封装至该目标数据文件的标识之前,得到该目标索引文件。
在本申请的一个可选实施例中,该目标数据文件为多个,该初始索引文件包括多个该目标数据文件的标识;该获取模块1803,具体用于:将各该目标数据文件的目标编码元数据对应封装至各该目标数据文件的标识之前,得到该目标索引文件。
在本申请的一个可选实施例中,该目标索引文件为m3u8文件,该目标数据文件为ts文件。
关于文件存储装置的具体限定可以参见上文中对于文件存储方法的限定,在此不再赘述。上述文件存储装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图19所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储XXX数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种文件定位方法以及文件存储方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图20所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种文件定位方法以及文件存储方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图19和图20中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取目标数据文件的目标元数据,其中,该目标元数据包含在目标索引文件中,且,该目标索引文件包括该目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对该目标数据文件执行打开操作;根据该目标元数据确定该目标数据文件的存储位置。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收并解析该客户端发送的针对该目标数据文件的文件处理请求,得到该目标元数据。
在一个实施例中,该文件处理请求携带目标编码元数据,该目标编码元数据是对该目标元数据编码后得到的,处理器执行计算机程序时还实现以下步骤:接收并解析该文件处理请求,得到该目标编码元数据;对该目标编码元数据进行解码,得到该目标元数据。
在一个实施例中,该目标索引文件包括该目标编码元数据,处理器执行计算机程序时还实现以下步骤:向该客户端发送该目标索引文件,以触发该客户端根据该目标索引文件获取该目标编码元数据,并根据该目标编码元数据生成该文件处理请求。
在一个实施例中,该文件处理请求为下载请求,处理器执行计算机程序时还实现以下步骤:根据该目标数据文件的存储位置获取该目标数据文件,并将该目标数据文件发送至该客户端。
在一个实施例中,该目标元数据包括该目标数据文件的标准数据量大小,处理器执行计算机程序时还实现以下步骤:若获取到的该目标数据文件的数据量大小与该标准数据量大小一致,则将该目标数据文件发送至该客户端。
在一个实施例中,该文件处理请求为删除请求,处理器执行计算机程序时还实现以下步骤:根据该目标数据文件的存储位置,对该目标数据文件进行删除处理。
在一个实施例中,该目标索引文件为m3u8文件,该目标数据文件为ts文件。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
获取目标索引文件,该目标索引文件包括目标数据文件的目标元数据以及该目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对该目标数据文件执行打开操作;根据该目标索引文件向服务器发送针对该目标数据文件的文件处理请求,以供该服务器根据该文件处理请求获取该目标元数据,并根据该目标元数据确定该目标数据文件的存储位置。
在一个实施例中,该目标索引文件包括对该目标元数据进行编码后得到的目标编码元数据,处理器执行计算机程序时还实现以下步骤:从该目标索引文件中提取该目标编码元数据;根据该目标编码元数据生成并向该服务器发送该文件处理请求,其中,该文件处理请求携带该目标编码元数据。
在一个实施例中,该目标索引文件为m3u8文件,该目标数据文件为ts文件。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
接收并解析客户端上传的目标数据文件,得到该目标数据文件的目标元数据;基于该目标元数据获取目标索引文件,其中,该目标索引文件包括该目标元数据和该目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对该目标数据文件执行打开操作;存储该目标数据文件以及该目标索引文件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收该客户端发送的文件上传请求,该文件上传请求中携带该目标数据文件的类型标识;根据该目标数据文件的类型标识确定该目标数据文件是否为预设文件类型;若该目标数据文件为该预设文件类型,则基于该目标元数据获取目标索引文件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:对该目标元数据进行编码,得到目标编码元数据;基于该目标编码元数据获取该目标索引文件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:将该目标编码元数据封装至该客户端预先上传的初始索引文件中,得到该目标索引文件。
在一个实施例中,该初始索引文件包括该目标数据文件的标识,处理器执行计算机程序时还实现以下步骤:将该目标编码元数据封装至该目标数据文件的标识之前,得到该目标索引文件。
在一个实施例中,该目标数据文件为多个,该初始索引文件包括多个该目标数据文件的标识,处理器执行计算机程序时还实现以下步骤:将各该目标数据文件的目标编码元数据对应封装至各该目标数据文件的标识之前,得到该目标索引文件。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:将该目标编码元数据发送至该客户端,以触发该客户端将该目标编码元数据封装至初始索引文件中,得到该目标索引文件;接收该客户端发送的该目标索引文件。
在一个实施例中,该目标索引文件为m3u8文件,该目标数据文件为ts文件。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
向服务器发送目标数据文件,以触发该服务器解析该目标数据文件,得到该目标元数据;接收该服务器发送的该目标元数据;根据该目标元数据获取该目标索引文件,并将该目标索引文件发送至该服务器,以供该服务器存储该目标数据文件和该目标索引文件,该目标索引文件包括该目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对该目标数据文件执行打开操作。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:向该服务器发送文件上传请求,该文件上传请求中携带该目标数据文件的类型标识;其中,该文件上传请求用于触发该服务器在根据该目标数据文件的类型标识确定该目标数据文件为预设文件类型的情况下,向客户端发送该目标元数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收该服务器发送的对该目标元数据进行编码后得到的目标编码元数据。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:将该目标编码元数据封装至初始索引文件中,得到该目标索引文件。
在一个实施例中,该初始索引文件包括该目标数据文件的标识,处理器执行计算机程序时还实现以下步骤:将该目标编码元数据封装至该目标数据文件的标识之前,得到该目标索引文件。
在一个实施例中,该目标数据文件为多个,该初始索引文件包括多个该目标数据文件的标识,处理器执行计算机程序时还实现以下步骤:将各该目标数据文件的目标编码元数据对应封装至各该目标数据文件的标识之前,得到该目标索引文件。
在一个实施例中,该目标索引文件为m3u8文件,该目标数据文件为ts文件。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取目标数据文件的目标元数据,其中,该目标元数据包含在目标索引文件中,且,该目标索引文件包括该目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对该目标数据文件执行打开操作;根据该目标元数据确定该目标数据文件的存储位置。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收并解析该客户端发送的针对该目标数据文件的文件处理请求,得到该目标元数据。
在一个实施例中,该文件处理请求携带目标编码元数据,该目标编码元数据是对该目标元数据编码后得到的,计算机程序被处理器执行时还实现以下步骤:接收并解析该文件处理请求,得到该目标编码元数据;对该目标编码元数据进行解码,得到该目标元数据。
在一个实施例中,该目标索引文件包括该目标编码元数据,计算机程序被处理器执行时还实现以下步骤:向该客户端发送该目标索引文件,以触发该客户端根据该目标索引文件获取该目标编码元数据,并根据该目标编码元数据生成该文件处理请求。
在一个实施例中,该文件处理请求为下载请求,计算机程序被处理器执行时还实现以下步骤:根据该目标数据文件的存储位置获取该目标数据文件,并将该目标数据文件发送至该客户端。
在一个实施例中,该目标元数据包括该目标数据文件的标准数据量大小,计算机程序被处理器执行时还实现以下步骤:若获取到的该目标数据文件的数据量大小与该标准数据量大小一致,则将该目标数据文件发送至该客户端。
在一个实施例中,该文件处理请求为删除请求,计算机程序被处理器执行时还实现以下步骤:根据该目标数据文件的存储位置,对该目标数据文件进行删除处理。
在一个实施例中,该目标索引文件为m3u8文件,该目标数据文件为ts文件。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
获取目标索引文件,该目标索引文件包括目标数据文件的目标元数据以及该目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对该目标数据文件执行打开操作;根据该目标索引文件向服务器发送针对该目标数据文件的文件处理请求,以供该服务器根据该文件处理请求获取该目标元数据,并根据该目标元数据确定该目标数据文件的存储位置。
在一个实施例中,该目标索引文件包括对该目标元数据进行编码后得到的目标编码元数据,计算机程序被处理器执行时还实现以下步骤:从该目标索引文件中提取该目标编码元数据;根据该目标编码元数据生成并向该服务器发送该文件处理请求,其中,该文件处理请求携带该目标编码元数据。
在一个实施例中,该目标索引文件为m3u8文件,该目标数据文件为ts文件。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
接收并解析客户端上传的目标数据文件,得到该目标数据文件的目标元数据;基于该目标元数据获取目标索引文件,其中,该目标索引文件包括该目标元数据和该目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对该目标数据文件执行打开操作;存储该目标数据文件以及该目标索引文件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收该客户端发送的文件上传请求,该文件上传请求中携带该目标数据文件的类型标识;根据该目标数据文件的类型标识确定该目标数据文件是否为预设文件类型;若该目标数据文件为该预设文件类型,则基于该目标元数据获取目标索引文件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:对该目标元数据进行编码,得到目标编码元数据;基于该目标编码元数据获取该目标索引文件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将该目标编码元数据封装至该客户端预先上传的初始索引文件中,得到该目标索引文件。
在一个实施例中,该初始索引文件包括该目标数据文件的标识,计算机程序被处理器执行时还实现以下步骤:将该目标编码元数据封装至该目标数据文件的标识之前,得到该目标索引文件。
在一个实施例中,该目标数据文件为多个,该初始索引文件包括多个该目标数据文件的标识,计算机程序被处理器执行时还实现以下步骤:将各该目标数据文件的目标编码元数据对应封装至各该目标数据文件的标识之前,得到该目标索引文件。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将该目标编码元数据发送至该客户端,以触发该客户端将该目标编码元数据封装至初始索引文件中,得到该目标索引文件;接收该客户端发送的该目标索引文件。
在一个实施例中,该目标索引文件为m3u8文件,该目标数据文件为ts文件。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
向服务器发送目标数据文件,以触发该服务器解析该目标数据文件,得到该目标元数据;接收该服务器发送的该目标元数据;根据该目标元数据获取该目标索引文件,并将该目标索引文件发送至该服务器,以供该服务器存储该目标数据文件和该目标索引文件,该目标索引文件包括该目标数据文件的描述信息,该描述信息用于供客户端根据该描述信息对该目标数据文件执行打开操作。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:向该服务器发送文件上传请求,该文件上传请求中携带该目标数据文件的类型标识;其中,该文件上传请求用于触发该服务器在根据该目标数据文件的类型标识确定该目标数据文件为预设文件类型的情况下,向客户端发送该目标元数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收该服务器发送的对该目标元数据进行编码后得到的目标编码元数据。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:将该目标编码元数据封装至初始索引文件中,得到该目标索引文件。
在一个实施例中,该初始索引文件包括该目标数据文件的标识,计算机程序被处理器执行时还实现以下步骤:将该目标编码元数据封装至该目标数据文件的标识之前,得到该目标索引文件。
在一个实施例中,该目标数据文件为多个,该初始索引文件包括多个该目标数据文件的标识,计算机程序被处理器执行时还实现以下步骤:将各该目标数据文件的目标编码元数据对应封装至各该目标数据文件的标识之前,得到该目标索引文件。
在一个实施例中,该目标索引文件为m3u8文件,该目标数据文件为ts文件。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (32)
1.一种文件定位方法,其特征在于,所述方法包括:
获取目标数据文件的目标元数据,其中,所述目标元数据包含在目标索引文件中,且,所述目标索引文件包括所述目标数据文件的描述信息,所述描述信息用于供客户端根据所述描述信息对所述目标数据文件执行打开操作;
根据所述目标元数据确定所述目标数据文件的存储位置。
2.根据权利要求1所述的方法,其特征在于,所述获取目标数据文件的目标元数据,包括:
接收并解析所述客户端发送的针对所述目标数据文件的文件处理请求,得到所述目标元数据。
3.根据权利要求2所述的方法,其特征在于,所述文件处理请求携带目标编码元数据,所述目标编码元数据是对所述目标元数据编码后得到的,所述接收并解析所述客户端发送的针对所述目标数据文件的文件处理请求,得到所述目标元数据,包括:
接收并解析所述文件处理请求,得到所述目标编码元数据;
对所述目标编码元数据进行解码,得到所述目标元数据。
4.根据权利要求3所述的方法,其特征在于,所述目标索引文件包括所述目标编码元数据,所述接收并解析所述文件处理请求,得到所述目标编码元数据之前,所述方法还包括:
向所述客户端发送所述目标索引文件,以触发所述客户端根据所述目标索引文件获取所述目标编码元数据,并根据所述目标编码元数据生成所述文件处理请求。
5.根据权利要求2至4任一所述的方法,其特征在于,所述文件处理请求为下载请求,所述根据所述目标元数据确定所述目标数据文件的存储位置之后,所述方法还包括:
根据所述目标数据文件的存储位置获取所述目标数据文件,并将所述目标数据文件发送至所述客户端。
6.根据权利要求5所述的方法,其特征在于,所述目标元数据包括所述目标数据文件的标准数据量大小,所述将所述目标数据文件发送至所述客户端,包括:
若获取到的所述目标数据文件的数据量大小与所述标准数据量大小一致,则将所述目标数据文件发送至所述客户端。
7.根据权利要求2至4任一所述的方法,其特征在于,所述文件处理请求为删除请求,所述根据所述目标元数据确定所述目标数据文件的存储位置之后,所述方法还包括:
根据所述目标数据文件的存储位置,对所述目标数据文件进行删除处理。
8.根据权利要求1所述的方法,其特征在于,所述目标索引文件为m3u8文件,所述目标数据文件为ts文件。
9.一种文件定位方法,其特征在于,所述方法包括:
获取目标索引文件,所述目标索引文件包括目标数据文件的目标元数据以及所述目标数据文件的描述信息,所述描述信息用于供客户端根据所述描述信息对所述目标数据文件执行打开操作;
根据所述目标索引文件向服务器发送针对所述目标数据文件的文件处理请求,以供所述服务器根据所述文件处理请求获取所述目标元数据,并根据所述目标元数据确定所述目标数据文件的存储位置。
10.根据权利要求9所述的方法,其特征在于,所述目标索引文件包括对所述目标元数据进行编码后得到的目标编码元数据,所述根据所述目标索引文件向服务器发送针对所述目标数据文件的文件处理请求,包括:
从所述目标索引文件中提取所述目标编码元数据;
根据所述目标编码元数据生成并向所述服务器发送所述文件处理请求,其中,所述文件处理请求携带所述目标编码元数据。
11.根据权利要求9或10所述的方法,其特征在于,所述目标索引文件为m3u8文件,所述目标数据文件为ts文件。
12.一种文件存储方法,其特征在于,所述方法包括:
接收并解析客户端上传的目标数据文件,得到所述目标数据文件的目标元数据;
基于所述目标元数据获取目标索引文件,其中,所述目标索引文件包括所述目标元数据和所述目标数据文件的描述信息,所述描述信息用于供客户端根据所述描述信息对所述目标数据文件执行打开操作;
存储所述目标数据文件以及所述目标索引文件。
13.根据权利要求12所述的方法,其特征在于,所述基于所述目标元数据获取目标索引文件之前,还包括:
接收所述客户端发送的文件上传请求,所述文件上传请求中携带所述目标数据文件的类型标识;
根据所述目标数据文件的类型标识确定所述目标数据文件是否为预设文件类型;
对应地,所述基于所述目标元数据获取目标索引文件,包括:
若所述目标数据文件为所述预设文件类型,则基于所述目标元数据获取目标索引文件。
14.根据权利要求12或13所述的方法,其特征在于,所述基于所述目标元数据获取目标索引文件,包括:
对所述目标元数据进行编码,得到目标编码元数据;
基于所述目标编码元数据获取所述目标索引文件。
15.根据权利要求14所述的方法,其特征在于,所述基于所述目标编码元数据获取所述目标索引文件,包括:
将所述目标编码元数据封装至所述客户端预先上传的初始索引文件中,得到所述目标索引文件。
16.根据权利要求15所述的方法,其特征在于,所述初始索引文件包括所述目标数据文件的标识,所述将所述目标编码元数据封装至所述客户端预先上传的初始索引文件中,得到所述目标索引文件,包括:
将所述目标编码元数据封装至所述目标数据文件的标识之前,得到所述目标索引文件。
17.根据权利要求16所述的方法,其特征在于,所述目标数据文件为多个,所述初始索引文件包括多个所述目标数据文件的标识;所述将所述目标编码元数据封装至所述目标数据文件的标识之前,得到所述目标索引文件,包括:
将各所述目标数据文件的目标编码元数据对应封装至各所述目标数据文件的标识之前,得到所述目标索引文件。
18.根据权利要求14所述的方法,其特征在于,所述基于所述目标编码元数据获取所述目标索引文件,包括:
将所述目标编码元数据发送至所述客户端,以触发所述客户端将所述目标编码元数据封装至初始索引文件中,得到所述目标索引文件;
接收所述客户端发送的所述目标索引文件。
19.根据权利要求12所述的方法,其特征在于,所述目标索引文件为m3u8文件,所述目标数据文件为ts文件。
20.一种文件存储方法,其特征在于,所述方法包括:
向服务器发送目标数据文件,以触发所述服务器解析所述目标数据文件,得到所述目标元数据;
接收所述服务器发送的所述目标元数据;
根据所述目标元数据获取所述目标索引文件,并将所述目标索引文件发送至所述服务器,以供所述服务器存储所述目标数据文件和所述目标索引文件,所述目标索引文件包括所述目标数据文件的描述信息,所述描述信息用于供客户端根据所述描述信息对所述目标数据文件执行打开操作。
21.根据权利要求20所述的方法,其特征在于,所述方法还包括:
向所述服务器发送文件上传请求,所述文件上传请求中携带所述目标数据文件的类型标识;
其中,所述文件上传请求用于触发所述服务器在根据所述目标数据文件的类型标识确定所述目标数据文件为预设文件类型的情况下,向客户端发送所述目标元数据。
22.根据权利要求20所述的方法,其特征在于,所述接收所述服务器发送的所述目标元数据,包括:
接收所述服务器发送的对所述目标元数据进行编码后得到的目标编码元数据。
23.根据权利要求22所述的方法,其特征在于,所述根据所述目标元数据获取所述目标索引文件,包括:
将所述目标编码元数据封装至初始索引文件中,得到所述目标索引文件。
24.根据权利要求23所述的方法,其特征在于,所述初始索引文件包括所述目标数据文件的标识,所述将所述目标编码元数据封装至初始索引文件中,得到所述目标索引文件,包括:
将所述目标编码元数据封装至所述目标数据文件的标识之前,得到所述目标索引文件。
25.根据权利要求24所述的方法,其特征在于,所述目标数据文件为多个,所述初始索引文件包括多个所述目标数据文件的标识;所述将所述目标编码元数据封装至所述目标数据文件的标识之前,得到所述目标索引文件,包括:
将各所述目标数据文件的目标编码元数据对应封装至各所述目标数据文件的标识之前,得到所述目标索引文件。
26.根据权利要求20至25任一所述的方法,其特征在于,所述目标索引文件为m3u8文件,所述目标数据文件为ts文件。
27.一种文件定位装置,其特征在于,所述装置包括:
获取模块,用于获取目标数据文件的目标元数据,其中,所述目标元数据包含在目标索引文件中,且,所述目标索引文件包括所述目标数据文件的描述信息,所述描述信息用于供客户端根据所述描述信息对所述目标数据文件执行打开操作;
确定模块,用于根据所述目标元数据确定所述目标数据文件的存储位置。
28.一种文件定位装置,其特征在于,所述装置包括:
获取模块,用于获取目标索引文件,所述目标索引文件包括目标数据文件的目标元数据以及所述目标数据文件的描述信息,所述描述信息用于供客户端根据所述描述信息对所述目标数据文件执行打开操作;
发送模块,用于根据所述目标索引文件向服务器发送针对所述目标数据文件的文件处理请求,以供所述服务器根据所述文件处理请求获取所述目标元数据,并根据所述目标元数据确定所述目标数据文件的存储位置。
29.一种文件存储装置,其特征在于,所述装置包括:
接收模块,用于接收并解析客户端上传的目标数据文件,得到所述目标数据文件的目标元数据;
获取模块,用于基于所述目标元数据获取目标索引文件,其中,所述目标索引文件包括所述目标元数据和所述目标数据文件的描述信息,所述描述信息用于供客户端根据所述描述信息对所述目标数据文件执行打开操作;
存储模块,用于存储所述目标数据文件以及所述目标索引文件。
30.一种文件存储装置,其特征在于,所述装置包括:
发送模块,用于向服务器发送目标数据文件,以触发所述服务器解析所述目标数据文件,得到所述目标元数据;
接收模块,用于接收所述服务器发送的所述目标元数据;
获取模块,用于根据所述目标元数据获取所述目标索引文件;
所述发送模块,还用于将所述目标索引文件发送至所述服务器,以供所述服务器存储所述目标数据文件和所述目标索引文件,所述目标索引文件包括所述目标数据文件的描述信息,所述描述信息用于供客户端根据所述描述信息对所述目标数据文件执行打开操作。
31.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至26中任一项所述的方法的步骤。
32.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至26中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110998512.1A CN115905117A (zh) | 2021-08-27 | 2021-08-27 | 文件定位方法、文件存储方法、装置、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110998512.1A CN115905117A (zh) | 2021-08-27 | 2021-08-27 | 文件定位方法、文件存储方法、装置、设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115905117A true CN115905117A (zh) | 2023-04-04 |
Family
ID=86478461
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110998512.1A Pending CN115905117A (zh) | 2021-08-27 | 2021-08-27 | 文件定位方法、文件存储方法、装置、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115905117A (zh) |
-
2021
- 2021-08-27 CN CN202110998512.1A patent/CN115905117A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108647527B (zh) | 文件打包、文件包解包方法、装置及网络设备 | |
KR101035302B1 (ko) | 클라우드 시스템 및 클라우드 시스템에서 파일 압축 및 전송 방법 | |
CN102135892B (zh) | 应用程序运行方法、装置及系统 | |
US10171608B2 (en) | Method, apparatus and computer program for modifying messages in a communications network | |
US11496585B2 (en) | Browser navigation for facilitating data access | |
US9509793B2 (en) | Content caching in a network for efficient user device access | |
CN109547363B (zh) | 数据传输方法、装置、计算机设备和存储介质 | |
CN111628967A (zh) | 日志数据的传输方法、装置、计算机设备和存储介质 | |
US10908971B1 (en) | Method and system for generating a customizable connector | |
CN112559463B (zh) | 压缩文件处理的方法及装置 | |
KR20120048525A (ko) | Sms를 통해 원격 디바이스를 제어하는 방법 및 이를 위한 장치 | |
CN113273163A (zh) | 文件上传方法、文件下载方法和文件管理装置 | |
CN109214855B (zh) | 素材接收方法、装置及系统 | |
CN108134811B (zh) | 目标文件分发或下载的方法、装置和系统 | |
CN105554136B (zh) | 备份数据还原方法、装置及系统 | |
US11017029B2 (en) | Data transfer system, data transfer apparatus, data transfer method, and computer-readable recording medium | |
CN112687375A (zh) | Dicom文件传输方法、系统、装置、服务器和存储介质 | |
CN115905117A (zh) | 文件定位方法、文件存储方法、装置、设备和存储介质 | |
CN117118972A (zh) | 一种可记录文件流转过程的方法、装置、设备及介质 | |
US20160014091A1 (en) | System and method thereof for optimizing delivery of content over a network | |
US20090024755A1 (en) | Method And Apparatus For Transferring Large Quantities Of Data | |
CN107800758B (zh) | 风控数据处理方法、装置及系统 | |
CN106487855B (zh) | 文件上传方法、访问方法、装置及设备 | |
CN113590994A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
CN113438503A (zh) | 视频文件还原方法、装置、计算机设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |