CN107566506A - 一种数据访问方法及装置 - Google Patents
一种数据访问方法及装置 Download PDFInfo
- Publication number
- CN107566506A CN107566506A CN201710835089.7A CN201710835089A CN107566506A CN 107566506 A CN107566506 A CN 107566506A CN 201710835089 A CN201710835089 A CN 201710835089A CN 107566506 A CN107566506 A CN 107566506A
- Authority
- CN
- China
- Prior art keywords
- character
- data
- name
- server
- short name
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
Abstract
本申请实施例公开一种数据访问方法及装置,涉及存储技术领域,能够解决数据访问的效率低、访问性能较差的问题。具体方案为:接收客户端设备发送的包括第一对象的短名称的数据请求;从第一对象的短名称中获取P位字符,P位字符为第一对象的短名称中除预设位置的字符之外的所有字符,11≥P≥1;根据预设的映射关系,将P位字符中的每位字符均转换为一位N进制数值,获取包括P位N进制数值的第一数值,预设的映射关系包括字符与N进制数值之间的对应关系,127>N>1;将第一数值转换为M进制的第二数值,第二数值为第一对象的句柄,M>1;根据第二数值,获取第一对象的数据;向客户端设备发送第一对象的数据。
Description
技术领域
本申请实施例涉及存储技术领域,尤其涉及一种数据访问方法及装置。
背景技术
Windows操作系统支持以8.3格式生成的短对象名,该短对象名与微软磁盘操作系统(Microsoft Disk Operating System,MS-DOS)兼容。8.3格式的短对象名中“8”指文件名或目录名的主体部分小于或等于8个字节,“3”指文件名的扩展名部分小于或等于3个字节。此外,8.3格式短对象名的有效字符不包括空格等特殊字符。
在支持服务器信息块(Server Message Block,SMB)协议的通信系统中,当客户端设备向网络附属存储(Network Attached Storage,NAS)服务器发送携带某一文件(以第一文件为例)的短文件名的数据请求,以请求获取该第一文件的数据时,NAS服务器响应该数据请求,获取该第一文件所归属的目录中的所有文件名和子目录名,并将获取到的所有名称均转换为短名称,然后,NAS服务器从获取到的所有短名称中获取与第一文件的短文件名匹配的短名称,这样,NAS服务器即可根据获取到的短名称获取第一文件的文件名,并根据第一文件的文件名获取第一文件的文件句柄,进而根据第一文件的文件句柄获取第一文件的数据。但是,在单个目录包括海量文件和子目录的场景中,NAS服务器获取所有文件名和子目录名,并将获取到的所有名称均转换为短名称的这一过程时间消耗较大,导致数据访问的效率很低,访问性能较差。
发明内容
本申请实施例提供一种数据访问方法及装置,能够解决现有的数据访问方法中数据访问的效率低、访问性能较差的问题。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种数据访问方法,服务器在接收到客户端设备发送的包括第一对象的短名称,且用于请求获取第一对象的数据的数据请求后,响应该数据请求,从第一对象的短名称中获取P位字符,这里的P位字符为第一对象的短名称中除预设位置的字符之外的所有字符,11≥P≥1;服务器根据预设的映射关系,将P位字符中的每位字符均转换为一位N进制数值,以获取包括P位N进制数值的第一数值,本申请中预设的映射关系包括字符与N进制数值之间的对应关系,127>N>1;服务器将第一数值转换为M进制的第二数值,第二数值为第一对象的句柄,M>1,由于第二数值为第一对象的句柄,句柄可以唯一标识对象,因此该服务器根据第二数值,即可获取到第一对象的数据,在服务器获取到第一对象的数据后,该服务器向客户端设备发送其获取到的第一对象的数据。
本申请中的服务器通过转换第一对象的短名称,获取到第一对象的句柄,进而根据获取到的第一对象的句柄,获取第一对象的数据。与现有技术相比,本申请提供的数据访问方法中的服务器无需再将目录中所有对象的名称转换为短名称,也无需将第一对象的短名称与其他短名称进行匹配,能够迅速、准确的获取到第一对象的数据,提升了数据访问的效率和性能。
本申请中服务器将第一对象的短名称转换为第一数值,并将第一数值转换为第二数值的过程为服务器通过执行预先设置好的程序代码实现。映射关系也体现在预先设置好的程序代码中,有效的减少了存储空间的占用,进一步提高了数据访问的性能。
可选的,在本申请的一种可能的实现方式中,服务器还接收客户端设备发送的包括第一目录的标识的查询请求,该查询请求用于请求获取第一目录中所有对象的名称,第一目录中所有对象包括第一对象;相应的,该服务器响应该查询请求,获取第一对象的名称,并将第一对象的名称转换为第一对象的短名称,这样,该服务器可向客户端设备发送其转换得到的第一对象的短名称。
第一对象为第一目录所包括的其中一个对象。服务器在接收到客户端设备发送的查询请求后,将第一目录中的每个对象的名称均转换为短名称,并向客户端设备发送,这样,客户端设备可利用其获取到的短名称访问数据,加强了客户端设备与服务器之间的通信性能,扩大了系统的兼容性。
可选的,在本申请的另一种可能的实现方式中,上述“服务器将第一对象的名称转换为第一对象的短名称”的方法为:服务器根据第一对象的名称,获取第一对象的句柄;将第一文件的句柄转换为第一数值;根据预设的映射关系,将第一数值中的每位N进制数值转换为一位字符;根据预设的短名称生成规则和转换得到的所有字符,生成第一对象的短名称。
从上面描述可知,本申请中预设的映射关系包括字符与N进制数值之间的对应关系,因此,服务器在获取到第一对象的句柄后,也可根据该预设映射关系对第一对象的句柄进行相关转换,以便于获取第一对象的短名称。服务器将第一对象的名称转换为第一对象的短名称的过程也是该服务器通过执行预先设置好的程序代码实现的。
可选的,在本申请的另一种可能的实现方式中,第一对象的短名称包括对象主名和扩展名,预设位置的字符包括第九位字符。
本申请中的短名称采用8.3格式,因此,在第一对象的短名称包括对象主名和扩展名的情况下,第九位字符为固定的字符小圆点“.”。此外,在8.3格式的基础上,还可预先设置其他位置的字符为固定字符,因此,本申请中的预设位置的字符还可以包括除第九位字符以外的其他任一字符。
第二方面,提供一种服务器,该服务器包括接收单元、获取单元、转换单元以及发送单元。具体的,接收单元用于接收客户端设备发送的数据请求,数据请求包括第一对象的短名称,数据请求用于请求获取第一对象的数据。获取单元用于响应上述接收单元接收到的数据请求,从第一对象的短名称中获取P位字符,P位字符为第一对象的短名称中除预设位置的字符之外的所有字符,11≥P≥1。转换单元用于根据预设的映射关系,将上述获取单元获取到的P位字符中的每位字符均转换为一位N进制数值,以获取包括P位N进制数值的第一数值,预设的映射关系包括字符与N进制数值之间的对应关系,127>N>1,以及将第一数值转换为M进制的第二数值,第二数值为第一对象的句柄,M>1。上述获取单元,还用于根据上述转换单元得到的第二数值,获取第一对象的数据。发送单元用于向客户端设备发送上述获取单元获取到的第一对象的数据。
进一步地,在本申请的一种可能的实现方式中,上述接收单元还用于接收客户端设备发送的包括第一目录的标识的查询请求,该查询请求用于请求获取第一目录中所有对象的名称,第一目录中所有对象包括第一对象。上述获取单元,还用于响应上述接收单元接收到的查询请求,获取第一对象的名称。上述转换单元,还用于将上述获取单元获取到的第一对象的名称均转换为第一对象的短名称。上述发送单元,还用于向客户端设备发送上述转换单元得到的第一对象的短名称。
进一步地,在本申请的另一种可能的实现方式中,上述获取单元还用于根据第一对象的名称,获取第一对象的句柄。上述转换单元,还用于将上述获取单元获取到的第一文件的句柄转换为第一数值,以及还用于根据预设的映射关系,将第一数值中的每位N进制数值转换为一位字符。此外,本申请提供的服务器还包括生成单元,该生成单元用于根据预设的短名称生成规则和转换单元转换得到的所有字符,生成第一对象的短名称。
进一步地,在本申请的另一种可能的实现方式中,第一对象的短名称包括对象主名和扩展名,预设位置的字符包括第九位字符。
第三方面,提供一种服务器,该服务器包括一个或多个处理器、存储器、通信接口。其中,存储器、通信接口与一个或多个处理器耦合;服务器通过通信接口与其他设备通信;存储器用于存储计算机程序代码,计算机程序代码包括指令,当一个或多个处理器执行所述指令时,服务器执行如前述第一方面及其任意一种可能的实现方式所述的数据访问方法。
第四方面,还提供一种计算机可读存储介质,该计算机可读存储介质中存储有指令;当其在上述第二方面所述的服务器上运行时,使得该服务器执行如上述第一方面及其各种可能的实现方式的数据访问方法。
第五方面,还提供一种包含指令的计算机程序产品,当其在上述第二方面所述的服务器上运行时,使得该服务器执行如上述第一方面及其各种可能的实现方式的数据访问方法。
在本申请中,上述服务器的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本申请类似,属于本申请权利要求及其等同技术的范围之内。
本申请中第二方面、第三方面、第四方面、第五方面及其各种实现方式的具体描述,可以参考第一方面及其各种实现方式中的详细描述;并且,第二方面、第三方面、第四方面、第五方面及其各种实现方式的有益效果,可以参考第一方面及其各种实现方式中的有益效果分析,此处不再赘述。
附图说明
图1为本申请实施例提供的数据访问通信系统的结构示意图;
图2为本申请实施例提供的服务器的结构示意图一;
图3为本申请实施例提供的数据访问方法的流程示意图一;
图4为本申请实施例提供的数据访问方法的流程示意图二;
图5为本申请实施例提供的服务器的结构示意图二;
图6为本申请实施例提供的服务器的结构示意图三。
具体实施方式
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
文件系统是服务器的操作系统中的重要组成部分,用于控制对服务器的存储介质(磁盘或硬盘)所保存的数据的存取。在文件系统中,用目录表示文件系统的数据组织结构,目录以及目录下的每个子目录和文件分别为一个对象。每个对象均配置有对应的对象名。一般的,文件系统采用句柄来唯一标识每个对象。对于某一对象而言,该对象的句柄既包括了该对象所归属的文件系统的信息,又包括了该对象的信息。服务器获取到某一对象的句柄,即可定位该对象,以获取该对象的数据。
结合上述描述可知,若对象为某一文件,则该对象的对象名为文件名。若对象为某一子目录,则该对象的对象名为目录名。
MS-DOS规定:文件名由文件主名和扩展名组成,文件主名由1~8个字符组成,扩展名由3个字符组成,文件主名和扩展名之间由一个小圆点隔开。该文件名的命名方式也称为8.3格式。示例性的,文件名为“G9401.BDF”,其中,“G9401”为文件主名,“BDF”为扩展名。本申请中将8.3格式的名称统一称为短名称。
一般的,文件主名和扩展名中的字符可以包括:英文字母(“A”~“z”,英文字母的大小写等价)、数字(0~9)、汉字以及特殊符号(“$”、“#”、“&”、“@”、“(”、“)”、“-”、“&”、“;”、“^”、“~”等)中的至少一种。但是,空格符、各种控制符、“/”、“\”、“<”、“>”、“*”、以及“?”均不能被包含于文件名中。
Windows操作系统支持按照上述8.3格式生成短名称,还支持长名称,长名称为超过12个字符的对象名,其最多包括255个字符。
一般的,在支持SMB协议的通信系统中,SMB客户端的操作系统为Windows操作系统。SMB客户端设备与NAS服务器通信,以获取某一目录中所有对象的对象名,然后,该SMB客户端设备根据其获取到的对象名对某一对象进行相关操作(如打开、读写、删除、重命名等)。具体的,如果NAS服务器获取到的对象名是SMB客户端设备不支持的名称或者获取到的对象名的长度超过预设范围,则NAS服务器将其获取到的对象名均转换为短名称,再将转换好的短名称发送给SMB客户端。
以第一文件为例,在SMB客户端设备获取到第一文件的短名称后,该SMB客户端设备可向NAS服务器发送携带第一文件的短名称的数据请求,以请求获取该第一文件的数据。相应的,NAS服务器响应该数据请求,获取第一文件所归属的目录中的所有文件名和子目录名,并将获取到的所有名称均转换为短名称,然后,NAS服务器从获取到的所有短名称中获取与第一文件的短名称匹配的短名称,这样,NAS服务器即可根据获取到的短名称获取第一文件的名称,并根据第一文件的名称获取到第一文件的文件句柄,进而根据第一文件的文件句柄获取第一文件的数据。但是,在单个目录包括海量文件和子目录的场景中,NAS服务器获取所有文件名和子目录名,并将获取到的所有名称均转换为短名称的这一过程时间消耗较大,导致数据访问的效率很低,访问性能较差。
针对上述数据访问的效率很低,访问性能较差的问题,本申请实施例提供一种数据访问方法,服务器在接收到客户端设备发送的包括第一对象的短名称的数据请求后,从该第一对象的短名称中P(11≥P≥1)位字符,该P位字符为第一对象的短名称中除预设位置的字符之外的所有字符,然后,服务器根据预设的映射关系,将P位字符中的每一位字符均转换为一个N(127>N>1)进制数值,这样服务器能够获取到包括P位N进制数值的第一数值,并将第一数值转换为M(M>2)进制的第二数值,该第二数值为第一对象的句柄,这样,服务器根据第二数值即可获取到第一对象的数据,并向客户端设备发送其获取到的第一对象的数据。服务器通过转换第一对象的短名称,获取到第一对象的句柄,可迅速、准确的获取到第一对象的数据,提升了数据访问的效率和性能。
本申请实施例提供的数据访问方法适用于数据访问通信系统。图1为本申请实施例提供的数据访问通信系统的结构示意图。如图1所示,该数据访问通信系统包括至少一个客户端设备10和服务器11,每个客户端设备10均与服务器11通过网络连接。每个客户端设备10与服务器11通信,能够访问服务器11存储的数据。服务器11包括处理器和存储器,存储器中存储有文件系统,该文件系统用于管理目录。
客户端设备10可以为电脑、手机、平板电脑等终端设备,该客户端设备10的硬件结构与通用的计算机设备的硬件结构相同,此处不再进行详细赘述。
客户端设备10可以仅支持一个操作系统,也可以支持两个或更多的操作系统。需要说明的是,本申请实施例中的客户端设备10的操作系统至少包括Windows操作系统。当然,客户端设备10的操作系统还可以包括Linux操作系统或其他操作系统,本申请实施例对此不作具体限定。客户端设备10的操作系统包括Windows操作系统时,客户端设备10为上述SMB客户端。
服务器11可以为网络附加存储(Network Attached Storage,NAS)服务器或其他存储有大量数据的存储设备,本申请实施例对此不作具体限定。
图2是本申请实施例提供的一种服务器的结构示意图,该服务器应用于图1所示的数据访问通信系统中。参见图2,该服务器包括:通信接口20、处理器21和存储器22。其中,通信接口20、处理器21与存储器22之间通过系统总线23连接,并完成相互间通信。
通信接口20用于与其他设备通信,例如向客户端设备10发送第一文件的数据。
存储器22可用于存储数据,也可以用于存储软件程序以及应用模块,处理器21通过运行存储在存储器22的软件程序以及应用模块,从而执行服务器的各种功能应用以及数据获取。
存储器22可主要包括存储程序区220和存储数据区221,其中,存储程序区220可存储操作系统、至少一个功能所需的软件程序,比如转换目标字符,从而得到第二数值的软件程序等;存储数据区221可存储数据。在以下实施例中,存储器22存储有使得服务器11能运行的操作系统,例如微软公司所开发的操作系统等。
在本申请实施例中,存储器22可以包括易失性存储器,例如非挥发性动态随机存取内存(Nonvolatile Random Access Memory,NVRAM)、相变化随机存取内存(PhaseChange RAM,PRAM)、磁阻式随机存取内存(Magnetic Random Access Memory,MRAM)等;存储器22还可以包括非易失性存储器,例如至少一个磁盘存储器件、电子可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、闪存器件,例如反或闪存(NOR flash memory)或是反及闪存(NAND flash memory)。非易失存储器储存处理器21所执行的操作系统及应用程序。处理器21从非易失存储器加载运行程序与数据到内存并将数据内容储存于大量储存装置中。
存储器22可以是独立存在,通过系统总线23与处理器21相连接。存储器22也可以和处理器21集成在一起。
处理器21是服务器的控制中心。处理器21利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器22内的软件程序和/或应用模块,以及调用存储在存储器22内的数据,执行服务器的各种功能和处理数据,从而对服务器整体监控。
处理器21可以仅包括中央处理器(Central Processing Unit,CPU),也可以是CPU、数字信号处理器(Digital Signal Processor,DSP)以及通信单元中的控制芯片的组合。在本申请实施方式中,CPU可以是单运算核心,也可以包括多运算核心。在具体实现中,作为一种实施例,处理器21可以包括一个或多个CPU,例如图2中的处理器21包括CPU 0和CPU 1。
系统总线23可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。该系统总线23可以分为地址总线、数据总线、控制总线等。本申请实施例中为了清楚说明,在图2中将各种总线都示意为系统总线23。
下面结合图1所示的数据访问通信系统的结构以及图2所示的服务器的结构对本申请提供的数据访问方法进行详细描述。
具体的,请参见图3,图3为本申请实施例提供的一种数据访问方法的流程示意图。如图3所示,本实施例提供的数据访问方法中,步骤S300由图1所示的客户端设备10执行,具体可由图1所示的客户端设备10中的处理器执行。另外,步骤S301~S305由图1所示的服务器11执行,具体可由图2所示的服务器中的处理器21执行。
如图3所示,本申请实施例提供的数据访问方法具体包括如下步骤。
S300、客户端设备向服务器发送携带第一对象的短名称的数据请求,请求获取第一对象的数据。
这里的第一对象可以为文件,也可以为子目录,本申请实施例对此不作具体限定。
客户端设备在获取到第一对象的短名称后,使用第一对象的短名称请求获取第一对象的数据。
可选的,客户端设备获取第一对象的短名称的方法可以为:客户端设备向服务器发送携带第一目录的标识的查询请求,请求查询第一目录中所有对象的名称,第一对象为第一目录中的一个对象;服务器响应该查询请求,获取第一目录中所有对象的名称;若服务器获取到的对象的名称是客户端设备不支持的名称或服务器获取到的对象的名称的长度超过预设范围,则服务器将其获取到的对象的名称均转换为短名称,再将转换好的短名称发送给客户端设备,这样,客户端设备即可获取到第一目录中每个对象的短名称。相应的,客户端设备可以获取到第一对象的短名称。
可选的,客户端设备获取第一对象的短名称的方法也可以为:客户端设备向服务器发送携带第一目录的标识的查询请求,请求查询第一目录中所有对象的名称;客户端设备向服务器发送携带第一目录的标识的查询请求后,服务器响应该查询请求,获取第一目录中所有对象的名称;对于第一目录中的每个对象,服务器根据其获取到的该对象的名称,获取该对象的句柄,并将该对象的句柄转换为一个包括P位N(127>N>1)进制数值的数值;服务器根据预设的映射关系,将该包括P位N进制数值的数值转换为文件名称的字符,并根据预设的短名称生成规则和转换好的文件名称的字符,生成该对象的短名称;按照这一流程,服务器可获取到第一目录中每个对象的短名称,并向客户端设备发送第一目录中每个对象的短名称,这样,客户端设备即可获取到第一目录中每个对象的短名称。相应的,客户端设备可以获取到第一对象的短名称。该方法可以参考后续具体介绍,此处不再进行详细赘述。
需要说明的是,本申请中服务器获取到的某一对象的名称是指服务器获取到了该对象除短名称以外的其他名称,如长名称。
S301、响应数据请求,服务器从第一对象的短名称中获取P位字符。
P位字符为第一对象的短名称中除预设位置的字符之外的所有字符,11≥P≥1。
从前面描述可知,8.3格式的名称统一称为短名称,8.3格式的文件名由文件主名和扩展名组成,文件主名由1~8个字符组成,扩展名由3个字符组成,文件名和扩展名之间由一个小圆点隔开。相应的,本申请中第一对象的短名称由对象主名和扩展名组成,对象主名由1~8个字符组成,扩展名由3个字符组成,对象主名和扩展名之间由一个小圆点隔开。
根据实际需求,第一对象的短名称可以仅包括对象主名,也可以包括对象主名和扩展名。因此,第一对象的短名称最多可以包括12位字符。
一般的,基于8.3格式,不同的文件系统的短名称生成规则不同。例如,对象名可以按照“XXX~XXXX.XXX”格式命名,X表示其中对象名中的一位字符,也可以按照“~XXXXXXX.XXX”格式命名,还可以按照“0XXXXXXX”格式命名,本申请实施例对此不作具体限定。
结合上述示例可以看出,短名称中某一位的字符可以是预设的,如“~XXXXXXX.XXX”格式的短名称中第一位字符为“~”。在短名称包括扩展名的情况下,短名称中的第九位字符为预设的字符,第九位字符为小圆点“.”。因此,本申请实施例中的预设位置的字符可以包括短名称中的第九位字符,也可以包括短名称生成规则中指定的位置的字符。
可以理解的是,由于短名称最多可以包括12位字符,因此,第一对象的短名称中除预设位置的字符之外的字符数P的最大值为11。
由于短名称的预设位置的字符为预设的,因此,服务器可不考虑预设位置的字符,从第一对象的短名称中获取P位字符。
示例性的,若第一对象的短名称按照“~XXXXXXX”格式命名,其内容为“~000000D”,首位字符为预设的字符“~”,因此,服务器能够获取到7位字符,且获取到的7位字符为000000D。若第一对象的短名称按照“~XXXXXXX.XXX”格式命名,其内容为“~000000F.doc”,由于首位字符为预设的字符“~”,第九位字符为预设的字符“.”,因此,服务器能够获取到10位字符,且获取到的10位字符为000000Fdoc。
S302、服务器根据预设的映射关系,将P位字符中每位字符均转换为一个N进制数值,以获取包括P位N进制数值的第一数值。
服务器在获取到P位字符后,转换该P位字符中的每一位字符。具体的,服务器根据预设的映射关系,将每一位字符均转换为一个N进制数值。
本申请实施例中预设的映射关系包括字符与N进制数值之间的对应关系,这里的字符是指短名称中的每一位字符。示例性的,表1示出了本申请实施例中预设映射关系。
表1
数值 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | …… | N |
字符 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | A | B | C | D | E | F | …… | ~ |
示例性的,结合S301中所述的示例和表1,若N为50,服务器获取到P位字符“000000D”,则该服务器将000000D转换为0 0 0 0 0 0 13。
S303、服务器将第一数值转换为M进制的第二数值。
若第一对象所在的文件系统中,第一对象的句柄为M进制,则服务器在获取到N进制的第一数值后,将该第一数值转换为M进制的第二数值,这样,第二数值即为第一对象的句柄。
本申请中服务器转换第一对象的短名称,以获取第二数值的过程为服务器通过执行预先设置好的程序代码实现的。上述表1示出的映射关系也体现在预先设置好的程序代码中。
服务器先将P位字符转换为第一数值,再将第一数值转换为第二数值,有效的减少了映射关系的容量,提高了服务器的性能。
S304、服务器根据第二数值,获取第一对象的数据。
S305、服务器向客户端设备发送第一对象的数据。
服务器在获取到第二数值后,根据第二数值获取第一对象的数据,并向客户端设备发送第一对象的数据,这样,客户端设备即可获取到第一对象的数据。
综上所述,本申请实施例中的服务器通过转换第一对象的短名称,即可获取到第一对象的句柄。相比于现有的数据方法,本申请实施例中的服务器无需再遍历第一目录中的所有对象,也无需再获取第一目录中每个对象的短名称,能够迅速、准确的获取到第一对象的数据,提升了数据访问的效率和性能。
进一步地,本申请实施例提供的数据访问方法中,在客户端设备向服务器发送携带第一对象的短名称的数据请求之前,该客户端设备与服务器的通信,获取第一对象的短名称。
具体的,结合上述图3,如图4所示,在S300之前,本申请实施例提供的数据访问方法包括:
S400、客户端设备向服务器发送携带第一目录的标识的查询请求,请求获取第一目录中所有对象的名称。
上述第一对象为第一目录中的其中一个对象。
S401、响应查询请求,服务器获取第一目录中所有对象的名称。
S402、服务器将第一目录中每个对象的名称均转换为短名称,以获取第一目录中每个对象的短名称。
可选的,服务器采用现有的名称转换方法将其获取到的对象的名称均转换为短名称。
可选的,对于第一目录中的每个对象,服务器根据其获取到的该对象的名称,获取该对象的句柄,并将该对象的句柄转换为一个包括P位N进制数值的数值;然后,服务器根据预设的映射关系,将每一位N进制数值转换为一个短名称的字符,并根据预设的短名称生成规则和转换好的短名称的字符,生成该对象的短名称。
具体的,对于第一对象而言,服务器获取第一对象的句柄,并将该第一对象的句柄转换为包括P位N进制数值的第一数值,然后,该服务器根据预设的映射关系,将第一数值中的每位N进制数值转换为一位字符;最后,服务器根据预设的短名称生成规则和转换得到的所有字符,生成第一对象的短名称。
示例性的,预设的映射关系如上述表1所示,预设的短名称生成规则为按照“~XXXXXXX”格式命名,若服务器将第一对象的句柄转换为一个50进制的数值“13”,根据上述表1,与“13”对应的短名称的字符为“D”,服务器将“D”按照“~XXXXXXX”格式生成第一对象的短名称“~0000000D”。同理,若预设的短名称生成规则为按照“~XXXXXXX.XXX”格式命名,则服务器也采用类似的方法生成第一对象的短名称。
S403、服务器向客户端设备发送第一目录中每个对象的短名称。
S404、客户端设备从其接收到的短名称中获取第一对象的短名称。
可以看出,本申请实施例中的服务器在获取第一目录中每个对象的短名称时,也可以直接转换每个对象的句柄,以获取每个对象的短名称。
本申请的服务器中预先存储有能够体现预设的映射关系的程序代码,服务器通过执行该程序代码即可实现短名称中的字符与N进制数值之间的转换,进而实现短名称与对象的句柄之间的转换,能够迅速、准确的获取到某一对象的数据,提升了数据访问的效率和性能。
本申请实施例提供一种服务器,该服务器用于执行以上数据访问方法中的服务器所执行的步骤。本申请实施例提供的服务器可以包括相应步骤所对应的模块。
本申请实施例可以根据上述方法示例对服务器进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图5示出上述实施例中所涉及的服务器的一种可能的结构示意图。如图5所示,服务器包括接收单元50、获取单元51、转换单元52、发送单元53和生成单元54。接收单元50用于支持该服务器执行上述实施例中的S300、和/或S400等,和/或用于本文所描述的技术的其它过程;获取单元51用于支持该服务器执行上述实施例中的S301、S304、S401、和/或S402等,和/或用于本文所描述的技术的其它过程;转换单元52用于支持该服务器执行上述实施例中的S302、和/或S303等,和/或用于本文所描述的技术的其它过程;发送单元53用于支持该服务器执行上述实施例中的S305、和/或S403等,和/或用于本文所描述的技术的其它过程;生成单元54用于支持该服务器根据预设的短名称生成规则和转换单元52转换得到的所有字符,生成第一对象的短名称。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。当然,本申请实施例提供的服务器包括但不限于上述模块,例如服务器还可以包括存储单元55。存储单元55可以用于存储该服务器的程序代码和数据。
需要说明的是,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
示例性的,在采用集成的单元的情况下,本申请实施例提供的服务器的结构示意图如图6所示。在图6中,该服务器包括:处理模块60、通信模块61和存储模块62。处理模块60用于对服务器的动作进行控制管理,例如,执行上述获取单元51、转换单元52和生成单元54执行的步骤,和/或用于执行本文所描述的技术的其它过程。通信模块61用于支持服务器与其他设备之间的交互,例如,执行上述接收单元50和发送单元53执行的步骤。存储模块62用于存储服务器的程序代码和数据,例如存储上述存储单元55所保存的内容。
这里,处理模块60与上述图2中的处理器21对应,通信模块61与上述图2中的通信接口20对应,存储模块62与上述图2中的存储器22对应。
相应的,本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在服务器上运行时,使得服务器执行上述方法实施例所示的方法流程中服务器执行的各个步骤。
在上述实施例中,可以全部或部分的通过软件,硬件,固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式出现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘,硬盘、磁带)、光介质(例如,DVD)或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (8)
1.一种数据访问方法,其特征在于,包括:
接收客户端设备发送的数据请求,所述数据请求包括第一对象的短名称,所述数据请求用于请求获取第一对象的数据;
响应所述数据请求,从所述第一对象的短名称中获取P位字符,所述P位字符为所述第一对象的短名称中除预设位置的字符之外的所有字符,11≥P≥1;
根据预设的映射关系,将所述P位字符中的每位字符均转换为一位N进制数值,以获取包括P位N进制数值的第一数值,所述预设的映射关系包括字符与N进制数值之间的对应关系,127>N>1;
将所述第一数值转换为M进制的第二数值,所述第二数值为所述第一对象的句柄,M>1;
根据所述第二数值,获取所述第一对象的数据;
向所述客户端设备发送所述第一对象的数据。
2.根据权利要求1所述的数据访问方法,其特征在于,所述数据访问方法还包括:
接收所述客户端设备发送的查询请求,所述查询请求包括所述第一目录的标识,所述查询请求用于请求获取所述第一目录中所有对象的名称,所述第一目录中所有对象包括所述第一对象;
响应所述查询请求,获取所述第一对象的名称;
将所述第一对象的名称转换为所述第一对象的短名称;
向所述客户端设备发送所述第一对象的短名称。
3.根据权利要求2所述的数据访问方法,其特征在于,所述将所述第一对象的名称转换为所述第一对象的短名称,具体包括:
根据所述第一对象的名称,获取所述第一对象的句柄;
将所述第一文件的句柄转换为所述第一数值;
根据所述预设的映射关系,将所述第一数值中的每位N进制数值转换为一位字符;
根据预设的短名称生成规则和转换得到的所有字符,生成所述第一对象的短名称。
4.根据权利要求1-3中任意一项所述的数据访问方法,其特征在于,所述第一对象的短名称包括对象主名和扩展名,所述预设位置的字符包括第九位字符。
5.一种服务器,其特征在于,包括:
接收单元,用于接收客户端设备发送的数据请求,所述数据请求包括第一对象的短名称,所述数据请求用于请求获取第一对象的数据;
获取单元,用于响应所述接收单元接收到的所述数据请求,从所述第一对象的短名称中获取P位字符,所述P位字符为所述第一对象的短名称中除预设位置的字符之外的所有字符,11≥P≥1;
转换单元,用于根据预设的映射关系,将所述获取单元获取到的所述P位字符中的每位字符均转换为一位N进制数值,以获取包括P位N进制数值的第一数值,所述预设的映射关系包括字符与N进制数值之间的对应关系,127>N>1,以及将所述第一数值转换为M进制的第二数值,所述第二数值为所述第一对象的句柄,M>1;
所述获取单元,还用于根据所述转换单元得到的所述第二数值,获取所述第一对象的数据;
发送单元,用于向所述客户端设备发送所述获取单元获取到的所述第一对象的数据。
6.根据权利要求5所述的服务器,其特征在于,
所述接收单元,还用于接收所述客户端设备发送的查询请求,所述查询请求包括所述第一目录的标识,所述查询请求用于请求获取所述第一目录中所有对象的名称,所述第一目录中所有对象包括所述第一对象;
所述获取单元,还用于响应所述接收单元接收到的所述查询请求,获取所述第一对象的名称;
所述转换单元,还用于将所述获取单元获取到的所述第一对象的名称转换为所述第一对象的短名称;
所述发送单元,还用于向所述客户端设备发送所述转换单元得到的所述第一对象的短名称。
7.根据权利要求6所述的服务器,其特征在于,
所述获取单元,还用于根据所述第一对象的名称,获取所述第一对象的句柄;
所述转换单元,还用于将所述获取单元获取到的所述第一文件的句柄转换为所述第一数值,以及还用于根据所述预设的映射关系,将所述第一数值中的每位N进制数值转换为一位字符;
所述服务器还包括生成单元;
所述生成单元,用于根据预设的短名称生成规则和所述转换单元转换得到的所有字符,生成所述第一对象的短名称。
8.根据权利要求5-7中任意一项所述的服务器,其特征在于,所述第一对象的短名称包括对象主名和扩展名,所述预设位置的字符包括第九位字符。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710835089.7A CN107566506B (zh) | 2017-09-15 | 2017-09-15 | 一种数据访问方法及装置 |
PCT/CN2018/087755 WO2019052214A1 (zh) | 2017-09-15 | 2018-05-22 | 一种数据访问方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710835089.7A CN107566506B (zh) | 2017-09-15 | 2017-09-15 | 一种数据访问方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107566506A true CN107566506A (zh) | 2018-01-09 |
CN107566506B CN107566506B (zh) | 2020-03-10 |
Family
ID=60981380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710835089.7A Active CN107566506B (zh) | 2017-09-15 | 2017-09-15 | 一种数据访问方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN107566506B (zh) |
WO (1) | WO2019052214A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019052214A1 (zh) * | 2017-09-15 | 2019-03-21 | 华为技术有限公司 | 一种数据访问方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050141028A1 (en) * | 2002-04-19 | 2005-06-30 | Toshiba Corporation And Toshiba Tec Kabushiki Kaisha | Document management system for automating operations performed on documents in data storage areas |
CN101051319A (zh) * | 2007-05-11 | 2007-10-10 | 北京中星微电子有限公司 | 文件分配系统中的文件名生成方法及生成装置 |
CN101315640A (zh) * | 2008-07-01 | 2008-12-03 | 中兴通讯股份有限公司 | 一种目录管理方法和装置 |
CN101673261A (zh) * | 2008-09-10 | 2010-03-17 | 上海摩波彼克半导体有限公司 | 短文件名文件系统中实现支持长文件名的系统结构及方法 |
CN104850502A (zh) * | 2015-05-05 | 2015-08-19 | 华为技术有限公司 | 一种数据的访问方法、装置及设备 |
US20160098574A1 (en) * | 2014-10-07 | 2016-04-07 | Cynny Spa | Systems and methods to manage file access |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100492365C (zh) * | 2007-05-11 | 2009-05-27 | 北京中星微电子有限公司 | 文件分配系统中的文件名生成方法及生成装置 |
CN107566506B (zh) * | 2017-09-15 | 2020-03-10 | 华为技术有限公司 | 一种数据访问方法及装置 |
-
2017
- 2017-09-15 CN CN201710835089.7A patent/CN107566506B/zh active Active
-
2018
- 2018-05-22 WO PCT/CN2018/087755 patent/WO2019052214A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050141028A1 (en) * | 2002-04-19 | 2005-06-30 | Toshiba Corporation And Toshiba Tec Kabushiki Kaisha | Document management system for automating operations performed on documents in data storage areas |
CN101051319A (zh) * | 2007-05-11 | 2007-10-10 | 北京中星微电子有限公司 | 文件分配系统中的文件名生成方法及生成装置 |
CN101315640A (zh) * | 2008-07-01 | 2008-12-03 | 中兴通讯股份有限公司 | 一种目录管理方法和装置 |
CN101673261A (zh) * | 2008-09-10 | 2010-03-17 | 上海摩波彼克半导体有限公司 | 短文件名文件系统中实现支持长文件名的系统结构及方法 |
US20160098574A1 (en) * | 2014-10-07 | 2016-04-07 | Cynny Spa | Systems and methods to manage file access |
CN104850502A (zh) * | 2015-05-05 | 2015-08-19 | 华为技术有限公司 | 一种数据的访问方法、装置及设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019052214A1 (zh) * | 2017-09-15 | 2019-03-21 | 华为技术有限公司 | 一种数据访问方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107566506B (zh) | 2020-03-10 |
WO2019052214A1 (zh) | 2019-03-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105893139B (zh) | 在云存储环境中用于向租户提供存储服务的方法和装置 | |
JP6542909B2 (ja) | ファイル操作方法及び装置 | |
US9432484B1 (en) | CIM-based data storage management system having a restful front-end | |
US8751547B2 (en) | Multiple file system and/or multi-host single instance store techniques | |
KR101430649B1 (ko) | 클라우드 환경 내의 데이터 분석 서비스 제공 시스템 및 방법 | |
KR20140061444A (ko) | 비휘발성 스토리지 장치 세트의 휘발성 메모리 표현 기법 | |
CN104603739A (zh) | 对并行存储的块级访问 | |
EP3900308A1 (en) | Input/output processing in a distributed storage node with rdma | |
Alshammari et al. | H2hadoop: Improving hadoop performance using the metadata of related jobs | |
WO2013004136A1 (zh) | 分布式存储方法、装置和系统 | |
CN107423301B (zh) | 一种数据处理的方法、相关设备及存储系统 | |
US9767118B2 (en) | Optimized UEFI file system with network file system compound statements | |
CN110334069B (zh) | 多进程间的数据共享方法及相关装置 | |
CN107679182A (zh) | 一种目录配置方法及装置 | |
Widodo et al. | SDM: Smart deduplication for mobile cloud storage | |
CN105739930A (zh) | 一种存储架构及其初始化方法和数据存储方法及管理装置 | |
CN109697019B (zh) | 基于fat文件系统的数据写入的方法和系统 | |
EP3076306B1 (en) | Method and apparatus for achieving device sharing | |
GB2541916A (en) | Method of operating data memory and device utilizing method | |
JP6342110B2 (ja) | マルチテナント型サービスシステム、情報処理装置、制御方法、及びプログラム | |
CN107566506A (zh) | 一种数据访问方法及装置 | |
US10284645B1 (en) | Backup from network attached storage to sequential access media in network data management protocol environments | |
WO2023179784A1 (zh) | 数据处理方法以及装置 | |
US20140297953A1 (en) | Removable Storage Device Identity and Configuration Information | |
CN104572638A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |