CN102622352B - 一种实现共享文件的方法、服务器及系统 - Google Patents

一种实现共享文件的方法、服务器及系统 Download PDF

Info

Publication number
CN102622352B
CN102622352B CN201110028968.1A CN201110028968A CN102622352B CN 102622352 B CN102622352 B CN 102622352B CN 201110028968 A CN201110028968 A CN 201110028968A CN 102622352 B CN102622352 B CN 102622352B
Authority
CN
China
Prior art keywords
file
virtual
shared
disk
shared 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.)
Expired - Fee Related
Application number
CN201110028968.1A
Other languages
English (en)
Other versions
CN102622352A (zh
Inventor
连自锋
谢军
孙育宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Igrs Yunshi Information Technology Co., Ltd.
Original Assignee
Beijing Igrs Yunshi Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Igrs Yunshi Information Technology Co Ltd filed Critical Beijing Igrs Yunshi Information Technology Co Ltd
Priority to CN201110028968.1A priority Critical patent/CN102622352B/zh
Publication of CN102622352A publication Critical patent/CN102622352A/zh
Application granted granted Critical
Publication of CN102622352B publication Critical patent/CN102622352B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种实现共享文件的方法、服务器及系统,实现根据采用32位的文件分配表FAT32的文件列表结构创建虚拟磁盘,将分散的文件组织在同一个虚拟磁盘中,然后通过一次操作来添加samba共享,使客户端看到的共享资源是一个磁盘分区,并利用服务器通过文件列表控制客户端看到的文件,还可以通过修改文件列表,方便的控制虚拟磁盘中的文件和文件夹,以及虚拟文件和真实文件对应关系,从而组织客户端的文件和文件夹结构,控制客户端能够读取的文件。因此,通过本发明公开的方法、服务器以及系统可以实现低功耗、快速和准确的获取共享文件。

Description

一种实现共享文件的方法、服务器及系统
技术领域
本发明涉及计算机通信技术领域,更具体的说,是涉及一种实现共享文件的方法、服务器及系统。
背景技术
Samba协议是一种应用于Windows操作系统下的共享协议,可以实现共享文件夹或者整个磁盘分区。
在现有技术中通过samba协议共享文件时,由于服务器端需要共享的文件可能不在一个文件夹中,甚至可能不在一个磁盘中,这时就需要先分别为每个需要共享的文件夹设置共享属性,或者通过拷贝将需要共享的文件夹,以及所有需要共享的资源文件移动至同一文件夹或同一磁盘中,然后再执行添加共享的操作。另外,服务器中也存在需要共享的文件和不需共享的文件位于同一文件夹中,这时为了数据安全以及进行正常的共享,则需要先将不需共享的文件移动到其他目录下,再执行相关的共享操作。
由上述可知,在利用现有技术的方式进行共享的时候,需要对共享的文件执行设置共享属性,或者将需要共享的文件或不需要共享的文件进行拷贝操作,以便于正常进行共享,但是,采用上述方式在消耗一定的系统功耗的基础上并不能快速、准确的完成对需要共享的文件进行共享,因此,当前迫切需要一种新的共享技术在低耗能的基础上快速、准确的完成对文件的共享操作。
发明内容
有鉴于此,本发明提供了一种实现共享文件的方法、服务器及系统,以克服现有技术中对分散的共享文件进行共享时,容易消耗系统功耗,并且不能较快速和准确完成文件共享的问题。
为实现上述目的,本发明提供如下技术方案:
一种实现共享文件的方法,包括:
在预设虚拟磁盘中创建采用32位的文件分配表FAT32分区;
依据所述FAT32的文件列表格式,在所述虚拟磁盘中创建虚拟文件列表、虚拟文件及虚拟文件,使所述虚拟文件及虚拟文件与真实磁盘中需共享的真实文件夹以及文件一一对应;
设置所述虚拟磁盘为samba共享;
接收获取共享文件的请求,解析获取所述请求中包含的数据段在所述虚拟磁盘中的起始扇区号和读取的扇区个数;
依据所述起始扇号进行查找共享文件所在扇区,并依据读取的扇区个数连续进行读取,获取共享文件路径、共享文件名、共享文件偏移量和请求的数据长度;
依据所述共享文件路径、共享文件名、共享文件偏移量和请求的数据长度获取共享文件;
发送所述共享文件,实现文件共享。
优选的,所述虚拟磁盘中的虚拟文件与真实磁盘中一一对应的真实文件的大小相同。
优选的,所述虚拟磁盘中的虚拟文件的名称和路径与真实磁盘中一一对应的真实文件的名称和路径不一致。
优选的,所述虚拟磁盘中的虚拟文件的名称和路径与真实磁盘中一一对应的真实文件的名称和路径一致。
优选的,所述虚拟磁盘中创建虚拟文件及虚拟文件的过程为:在创建虚拟文件夹的基础上连续创建与真实磁盘中的真实文件一一对应的虚拟文件。
优选的,每个文件的所述起始扇区号为上一文件的起始扇区与存储所述上一文件所占扇区之和。
一种实现共享文件的服务器,包括:
创建单元,用于预设虚拟磁盘,在虚拟磁盘中创建FAT32分区,并依据FAT32的文件列表格式,在所述虚拟磁盘中创建虚拟文件列表、虚拟文件夹以及虚拟文件;
映射单元,用于使所述虚拟磁盘中的虚拟文件夹以及虚拟文件与真实磁盘中需共享的真实文件夹以及文件进行一一对应;
设置单元,用于设置所述虚拟磁盘为samba共享;
文件系统,用于接收客户端获取共享文件的请求,解析获取所述请求中包含的数据段在所述虚拟磁盘中的起始扇号和读取的扇区个数,依据所述起始扇号进行查找共享文件所在扇区,并依据读取的扇区个数连续进行读取,获取共享文件路径、共享文件名、共享文件偏移量和请求的数据长度;
发送单元,用于依据所述共享文件路径、共享文件名、共享文件偏移量和请求的数据长度获取共享文件,并将所述共享文件发送至客户端。
优选的,所述文件系统中包括:
接收单元,用于接收客户端获取共享文件的请求;
解析单元,用于解析所述请求中包含的数据段在所述虚拟磁盘中的起始扇号和读取的扇区个数,确定共享文件所在扇区,并按照可读取的扇区个数连续进行读取,获取共享文件路径、共享文件名、共享文件偏移量和请求的数据长度。
一种实现共享文件的系统,包括:上述的服务器和客户端;
所述服务器,用于预设虚拟磁盘,并在虚拟磁盘中创建与真实磁盘中需共享的真是文件一一对应的虚拟文件,以及接收所述客户端发送的获取共享文件的请求并进行解析,将依据解析结果获取到的共享文件发送给所述客户端;
所述客户端,用于向所述服务器发送获取共享文件的请求,以及接收服务器反馈的共享文件信息。
经由上述的技术方案可知,与现有技术相比,本发明公开了一种实现共享文件的方法、服务器及系统,通过将分散的文件组织在同一个虚拟磁盘中,然后通过一次操作来添加samba共享,使客户端看到的共享资源是一个磁盘分区,并利用服务器通过文件列表控制客户端看到的文件,控制虚拟磁盘中的文件和文件夹,以及虚拟文件和真实文件对应关系,从而组织客户端的文件和文件夹结构,控制客户端能够读取的文件。因此,通过本发明公开的方法、服务器以及系统可以实现低功耗、快速和准确的获取共享文件。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种实现共享文件的方法流程图;
图2为本发明实施例公开的一种实现共享文件的原理示意图;
图3为本发明实施例中公开的FAT32文件系统结构示意图;
图4为本发明实施例中公开的FAT32定位文件内容的流程图;
图5为本发明实施例公开的虚拟磁盘文件存储结构实例图;
图6为本发明实施例公开的客户端请求读取数据的原理示意图;
图7为本发明实施例公开的通过虚拟磁盘读取实际磁盘文件的原理示意图;
图8为本发明实施例公开的一种实现共享文件的服务器结构示意图;
图9为本发明实施例公开的一种实现共享文件的系统结构示意图。
具体实施方式
为了引用和清楚起见,下文以及附图中使用的技术名词的说明、简写或缩写总结如下:
SMB:Server Message Block,是协议名,它能被用于连接客户端与服务器之间的信息沟通;
FAT:File Allocation Table,文件配置表,FAT32是Windows操作系统硬盘分区格式的一种,这种格式采用32位的文件分配表;
Virtual Disk:虚拟磁盘分区;File list on Virtual Disk:位于虚拟磁盘分区上的文件列表;File list on server disk:位于实际磁盘分区上的文件列表;
Physical Disk:真实磁盘;File System:文件系统;Network:网络;
DBR:Dos Boot Record,DOS引导记录;
BPB:BIOS Parameter Block,作为逻辑盘的描述区域,包含隐藏扇区数目(从0-1-1开始计算)、FAT扇区数、FAT拷贝数、硬盘磁头总数、根目录表项最大值等;在FAT32的每个表项由4字节(32位)组成,通常每个表项指向的簇包含8个扇区,即4K字节,逻辑盘容量最小为512MB。
簇:扇区是磁盘最小的物理存储单元,但由于操作系统无法对数目众多的扇区进行寻址,所以操作系统就将相邻的扇区组合在一起,形成一个簇,然后再对簇进行管理;
FDT:File Directory Table,文件目录表,紧跟在FAT2的下一个扇区,长度为32个扇区;
Client:客户端;Server:服务器;
File:文件;Calculation:计算、运算。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
针对现有技术中在进行共享文件时,对分散的共享文件执行设置共享属性的操作,或者将需要共享的文件或不需要共享的文件进行拷贝操作,是共享的文件处于同一文件夹内,以便于正常进行共享,但是,采用上述方式在消耗一定的系统功耗的基础上并不能快速、准确的完成对需要共享的文件进行共享。
因此,本发明公开了一种实现共享文件的方法、服务器及系统,提出一种新的共享文件的执行过程:首先,根据服务器和客户端的需求生成要共享的文件列表,然后,根据列表创建一个虚拟磁盘分区(VirtualDisk)。并且,这个虚拟磁盘分区不占有实际的存储空间,但其基本属性与物理意义上的磁盘分区一致。在该虚拟磁盘分区中对应有所有要共享的文件名,然后,服务器把这个虚拟磁盘分区通过samba协议添加共享。当客户端从这个虚拟磁盘中读取数据时,计算这段数据在服务器中的实际存储路径,通过网络读取并返回给用户程序。具体的过程通过以下实施例进行详细说明。
请参阅附图1,为本发明实施例公开的一种实现共享文件的方法流程图,请参阅附图2,为该方法的原理示意图,该方法主要包括以下步骤:
步骤S101,服务器向系统发送注册信息,预设虚拟磁盘。
步骤S102,服务器在所述虚拟磁盘中创建一个空的FAT32分区。
步骤S103,服务器依据FAT32的文件列表格式,在虚拟磁盘中创建虚拟文件列表、虚拟文件夹以及虚拟文件,并使虚拟文件夹以及虚拟文件与真实磁盘中需共享的真实文件夹以及文件一一对应。
步骤S104,设置所述虚拟磁盘为samba共享。
步骤S105,服务器接收客户端获取共享文件的请求,并进行解析获取所述请求中包含的数据段在所述虚拟磁盘中的偏移量,即起始扇区号,以及可读取的扇区个数。
步骤S106,服务器依据所述起始扇号进行查找,确定共享文件所在扇区,并按照可读取的扇区个数连续进行读取,获取共享文件路径、共享文件名、共享文件偏移量和请求的数据长度。
步骤S107,服务器依据所述共享文件路径、共享文件名、共享文件偏移量和请求的数据长度获取共享文件,并将所述共享文件发送至客户端,实现文件共享。
下面对上述步骤进行详细说明:
在执行步骤S101中,预设虚拟磁盘实际上是向系统注册一个虚拟的磁盘分区,并且这个分区没有设备符号,也没有实际的存储空间。
在步骤S102和步骤S103中提到的FAT32是Windows操作系统硬盘分区格式的一种,FAT32文件系统是微软制定的一个文件系统标准,最早出现在Windows95 R2版本中。如图3所示,FAT32文件系统的基本结构主要由以下三部分组成:
1、DBR:包括跳转指令、厂商标志、OS版本号、BPB、扩展BPB、引导程序和结束符;
2、FAT表:实际数据存储空间的映射表,FAT1和FAT2完全一致,后者作为前者的备份,实际应用中基本用不到;
3、FAT32文件系统把根目录也当作一个特殊的文件来处理,起始簇号是2。
FAT32针对文件的管理,除了根目录,FAT32文件系统中的所有文件(子目录作为一种特殊的文件)都对应一组数据结构,保存在文件描述符中,包含了这个文件的所有属性。每个目录内的所有文件和子目录的文件描述符都存储在这个目录对应的存储空间内,每一个文件描述符项有32个字节,主要包括文件名、文件属性、文件大小、文件存储位置以及一系列的时间描述结构等。因此,把文件路径、文件描述符、FAT表联系在一起就可以完全把握一个文件在硬盘的存储情况,并且一般情况下可以通过下面的步骤定位文件的所有内容,请参阅附图4,主要包括以下步骤:
步骤S201,通过路径找到文件目录所在的簇。
步骤S202,在目录对应的空间内比对文件名,找到文件对应的文件描述符项。
步骤S203,通过文件描述符项确定文件的起始簇和文件大小。
步骤S204,根据FAT表内的簇链确定文件的存储位置。
需要说明的是,在执行步骤S103时,创建的虚拟文件列表中包括文件全路径和文件大小,示例如表1所示。
需要说明的是,虚拟磁盘中的虚拟文件与真实磁盘中的真实文件一一对应,而且对应的虚拟文件与真实文件的大小也是相同的。但是,虚拟文件和真实文件的名称和路径可以不一样,只要两者一一对应即可,其名称和路径并不影响两者之间的对应关系,因此服务器可以按照客户端的要求任意组织文件。例如,在下表1中虚拟磁盘中的“V:/文件夹1/文件1”对应于实际磁盘中的文件“C:/Path1/File_01”,他们的大小相同,当用户程序读取“V:/文件夹1/文件1”,实际读到的数据应该是文件“C:/Path1/File_01”相同偏移量的数据。
表1:
而在执行步骤S103在所述虚拟文件列表的基础上依次创建、存储与真实磁盘中需共享的文件一一对应的虚拟文件夹、虚拟文件的过程,可以按照上述文件列表创建虚拟文件,创建时先创建所有虚拟文件夹,然后创建普通文件,也就是在所述虚拟文件夹的基础上连续的创建对应共享文件的虚拟文件,保证所有创建的虚拟文件,即普通文件在虚拟磁盘存储空间中是连续的,并且排列顺序同附图5中一样,即文件存储结构示例如附图5所示。
在执行步骤S103中为保证虚拟文件与真实文件的一一对应,需要在虚拟磁盘中定义结构体(File_Info),该结构体用来描述每个文件在虚拟磁盘中存储的起始扇区号(Start_Sector)、文件大小(File_Size)、虚拟文件名(File_Name_V)和实际的文件名(File_Name_T)。每个文件对应一个结构体,组成一个结构体数组File_Info[]。该结构体数据组的生成方式举例进行说明,即可通过表1中文件列表形式生成。
第一个文件的起始扇区号(Start_Sector_0)是FAT32文件系统的第一个普通文件存储位置,位于数据区中紧邻目录之后的位置。Start_Sector_0可以通过查找FDT表得到,也可以在创建虚拟磁盘文件时保存下来。
扇区大小Sector_Size可以从FAT32分区的第一个扇区中读出,设为Sector_Size,通常为固定的512字节。关于扇区的大小可以通过以下过程进行计算:每个文件的起始扇区号Start_Sector_N(N>=1)等于上一文件的起始扇区加上存储上一文件所占扇区。上述过程利用公式(1)可以表示为:
Start_Sector_N=Start_Sector_(N-1)+(File_Size_(N-1)+Sector_Size-1)%512 (1)
通过上述计算可以得到的文件信息的结构体数组File_Info[]内容,如表3所示。
表3:
  序号   File_Size   Start_Sector   File_Name_V   File_Name_T
  0   100000   18366   /文件夹1/文件1   C:/Path1/File_01
  1   200000   18562   /文件夹2/文件2   E:/Path3/File_02
  2   300000   18953   /文件夹2/文件3   F:/Path4/File_03
  3   400000   19539   /文件夹2/文件4   D:/Path2/File_04
由于,在日常使用的操作系统中,应用层程序通过文件系统读取一个磁盘分区中的数据时,需要知道的参数为:
A、文件路径(File_Path)。
B、文件名(File_Name)。
C、该段数据在该文件中的偏移量(File_Offset)。
D、请求的数据长度(File_Size)。
然后再通过文件系统层的计算,找到每段数据在磁盘中的实际存储位置,即:
E、该段数据在磁盘中的偏移量,即起始扇区号(Offset_In_Sector)。
F、可读取的扇区个数(Size_In_Sector)。
在执行步骤S105时,请参阅附图6,为客户端请求读取数据的原理示意图,基于上述读取一个磁盘分区中的数据所需的参数内容,当客户端通过samba协议读取这个共享虚拟磁盘中的文件数据时,采用逆向进行解析。服务器的文件系统层接收请求中携带的参数,这些参数包括请求中包含的数据段在虚拟磁盘中的起始扇区号,以及要读取的扇区个数,也就是上文中提到的参数E和F,而服务器的文件系统要解析出的参数则是上文中提到的参数A、B、C和D,最后,该文件系统可以以A、B、C、D为参数,请求虚拟磁盘文件对应的数据。
步骤S106和步骤S107即为逆向解析过程,以获取共享的实际文件。具体的逆向解析过程下面以图6、图7和表1、表3中的内容举例进行说明:
在依据Samba协议的客户端的请求到达服务器以后,经服务器的文件系统解析,传到服务器块设备层的请求结构为上述的参数E和F,即Offset_In_Sector和Size_In_Sector。
例如,块设备收到的请求是:Offset_In_Sector=18969,Size_In_Sector=8,即表示文件系统希望块设备从18969扇区开始,连续读取8个扇区的数据,并将读取到的数据返回给文件系统。
因为在本发明实施例中文件是连续存储的,所以也可以用简单的折半查找法查找这个扇区对应的文件,查找复杂度为O(log(n+1)),n是以零起始的文件个数(N=n+1)。
从表3中看以看出,18969号扇区位于第三个文件中,解析出的信息为:
A、文件路径(File_Path):        /文件夹2/;
B、文件名(File_Name):          文件3;
C、文件偏移量(File_Offset):    (18969-18953)*Sector_Size;
D、请求的数据长度(File_Size):  8*Sector_Size;
因此,由上述逆向解析之后的信息可知,请求的文件在虚拟盘符中的文件名是“/文件夹2/文件3”,根据表1或者表3中的文件信息,可以查到实际文件是“F:/Path4/File_03”。到此,即完成了虚拟磁盘偏移到文件名和文件偏移的逆向解析,设备驱动可以根据以上参数从服务器中获取实际的共享文件,在将获取到的共享文件发送至至客户端,实现文件共享。图6为客户端进行请求的原理示意图;图7为通过虚拟磁盘读取实际磁盘文件的原理示意图。
综上所述,本发明基于该FAT32文件系统的上述技术特征,根据文件列表,创建虚拟磁盘,将分散的文件组织在同一个虚拟磁盘中,然后通过一次操作来添加samba共享的整体方法。在实现文件共享的时候,不需要浪费系统功耗的分别设置每个文件夹的共享属性。
在执行本发明实施例所公开的方法时,服务器共享的是一个整体的磁盘分区,而客户端看到的共享资源是一个磁盘分区,与现有技术中常规的samba共享时,服务器共享分散的文件夹,客户端看到的也是分散的文件夹不同。
同时,服务器通过文件列表控制客户端看到的文件,还可以通过修改文件列表,方便的控制虚拟磁盘中的文件和文件夹,以及虚拟文件和真实文件对应关系,从而组织客户端的文件和文件夹结构,控制客户端能够读取的文件。因此,采用本发明实施例所公开的方法可以实现低功耗、快速和准确的获取共享文件的过程。
上述本发明公开的实施例中详细描述了一种实现共享文件的方法,对于本发明的方法可采用多种形式的装置实现,因此本发明还公开了一种实现共享文件的服务器,下面给出具体的实施例进行详细说明。
请参阅附图7所示,本发明实施例中公开的一种实现共享文件的服务器的结构示意图,主要包括:创建单元101、映射单元102、设置单元103、文件系统104和发送单元105。
创建单元101,用于预设虚拟磁盘,在虚拟磁盘中创建一个空的FAT32分区,并依据FAT32的文件列表格式,在所述虚拟磁盘中创建虚拟文件列表、虚拟文件夹以及虚拟文件。
在创建单元101中的预设虚拟磁盘即没有设备符号,也没有实际的存储空间。在虚拟磁盘中创建了一个空的FAT32分区,该FAT32的文件列表格式如图3所示。
映射单元102,用于使所述虚拟磁盘中的虚拟文件夹以及虚拟文件与真实磁盘中需共享的真实文件夹以及文件进行一一对应。
需要说明的是,虚拟磁盘中的虚拟文件与真实磁盘中的真实文件一一对应,而且对应的虚拟文件与真实文件的大小也是相同的。但是,虚拟文件和真实文件的名称和路径可以不一样,服务器可以按照客户端的要求任意组织文件。
设置单元103,用于设置所述虚拟磁盘为samba共享。
文件系统104,用于接收客户端获取共享文件的请求,并进行解析获取所述请求中包含的数据段在所述虚拟磁盘中的起始扇号和可读取的扇区个数,确定共享文件所在扇区,并按照可读取的扇区个数连续进行读取,获取共享文件路径、共享文件名、共享文件偏移量和请求的数据长度。
发送单元105,用于依据所述共享文件路径、共享文件名、共享文件偏移量和请求的数据长度获取共享文件,并将所述共享文件发送至客户端。
在本发明实施例所描述的服务器的基础上,该文件系统104中包括:接收单元1041和解析单元1042。
接收单元1041,用于接收客户端获取共享文件的请求。
解析单元1042,用于解析所述请求中包含的数据段在所述虚拟磁盘中的起始扇号和可读取的扇区个数,确定共享文件所在扇区,并按照可读取的扇区个数连续进行读取,获取共享文件路径、共享文件名、共享文件偏移量和请求的数据长度。
在进行文件系统104进行解析的过程中,依据上述本发明所公开的方法实施例中的逆向解析的方法进行解析,依据收到的起始扇号和可读取的扇区个数获得共享文件路径、共享文件名、共享文件偏移量和请求的数据长度,使该服务器可以依据上述获取到的与共享文件相关的内容,在设置为samba共享的虚拟磁盘中查找到虚拟文件对应的真实文件,从而实现文件的共享。
上述本发明公开的实施例中详细描述了一种实现共享文件的方法和装置,对于本发明的方法可采用多种形式的系统实现,因此本发明还公开了一种实现共享文件的系统,下面给出具体的实施例进行详细说明。
请参阅附图8,为本发明实施例公开的一种实现共享文件的系统结构示意图,主要包括:服务器201和客户端202。
服务器201,用于预设虚拟磁盘,并在虚拟磁盘中创建与真实磁盘中需共享的真是文件一一对应的虚拟文件,以及接收客户端202发送的获取共享文件的请求并进行解析,将依据解析结果获取到的共享文件发送给客户端202。
客户端202,用于向服务器201发送获取共享文件的请求,以及接收服务器反馈的共享文件信息。
需要说明的是,上述服务器201与客户端202之间通过网络203进行数据间的交互。
服务器201的结构与上述本发明实施例公开的服务器结构一致,这里不再赘述。通过上述本发明实施例公开的系统,实现根据FAT32文件列表创建虚拟磁盘,将分散的文件组织在同一个虚拟磁盘中,然后通过一次操作来添加samba共享,使客户端看到的共享资源是一个磁盘分区,并利用服务器通过文件列表控制客户端看到的文件,还可以通过修改文件列表,方便的控制虚拟磁盘中的文件和文件夹,以及虚拟文件和真实文件对应关系,从而组织客户端的文件和文件夹结构,控制客户端能够读取的文件。因此,采用本发明实施例所公开的系统可以实现低功耗、快速和准确的获取共享文件。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (9)

1.一种实现共享文件的方法,其特征在于,包括:
在预设虚拟磁盘中创建采用32位的文件分配表FAT32分区;所述预设虚拟磁盘是向系统注册的一个虚拟的磁盘分区,且所述磁盘分区没有设备符号以及实际的存储空间;
依据所述FAT32的文件列表格式,在所述虚拟磁盘中创建虚拟文件列表、虚拟文件夹及虚拟文件,使所述虚拟文件夹及虚拟文件与真实磁盘中需共享的真实文件夹以及文件一一对应;所述虚拟文件列表能够被服务器修改;
设置所述虚拟磁盘为samba共享;
接收获取共享文件的请求,解析获取所述请求中包含的数据段在所述虚拟磁盘中的起始扇区号和读取的扇区个数;
依据所述起始扇号进行查找共享文件所在扇区,并依据读取的扇区个数连续进行读取,获取共享文件路径、共享文件名、共享文件偏移量和请求的数据长度;
依据所述共享文件路径、共享文件名、共享文件偏移量和请求的数据长度获取共享文件;
发送所述共享文件,实现文件共享。
2.根据权利要求1所述的方法,其特征在于,所述虚拟磁盘中的虚拟文件与真实磁盘中一一对应的真实文件的大小相同。
3.根据权利要求1所述的方法,其特征在于,所述虚拟磁盘中的虚拟文件的名称和路径与真实磁盘中一一对应的真实文件的名称和路径不一致。
4.根据权利要求1所述的方法,其特征在于,所述虚拟磁盘中的虚拟文件的名称和路径与真实磁盘中一一对应的真实文件的名称和路径一致。
5.根据权利要求1所述的方法,其特征在于,所述虚拟磁盘中创建虚拟文件及虚拟文件的过程为:在创建虚拟文件夹的基础上连续创建与真实磁盘中的真实文件一一对应的虚拟文件。
6.根据权利要求1所述的方法,其特征在于,每个文件的所述起始扇区号为上一文件的起始扇区与存储所述上一文件所占扇区之和。
7.一种实现共享文件的服务器单元,其特征在于,包括:
创建单元,用于预设虚拟磁盘,在虚拟磁盘中创建FAT32分区,所述预设虚拟磁盘是向系统注册的一个虚拟的磁盘分区,且所述磁盘分区没有设备符号以及实际的存储空间;并依据FAT32的文件列表格式,在所述虚拟磁盘中创建虚拟文件列表、虚拟文件夹以及虚拟文件;
映射单元,用于使所述虚拟磁盘中的虚拟文件夹以及虚拟文件与真实磁盘中需共享的真实文件夹以及文件进行一一对应;所述虚拟文件列表能够被服务器修改;
设置单元,用于设置所述虚拟磁盘为samba共享;
文件系统,用于接收客户端获取共享文件的请求,解析获取所述请求中包含的数据段在所述虚拟磁盘中的起始扇号和读取的扇区个数,依据所述起始扇号进行查找共享文件所在扇区,并依据读取的扇区个数连续进行读取,获取共享文件路径、共享文件名、共享文件偏移量和请求的数据长度;
发送单元,用于依据所述共享文件路径、共享文件名、共享文件偏移量和请求的数据长度获取共享文件,并将所述共享文件发送至客户端。
8.根据权利要求7所述的服务器单元,其特征在于,所述文件系统中包括:
接收单元,用于接收客户端获取共享文件的请求;
解析单元,用于解析所述请求中包含的数据段在所述虚拟磁盘中的起始扇号和读取的扇区个数,确定共享文件所在扇区,并按照可读取的扇区个数连续进行读取,获取共享文件路径、共享文件名、共享文件偏移量和请求的数据长度。
9.一种实现共享文件的系统,其特征在于,包括:权利要求7所述的服务器单元和客户端;
所述服务器单元,用于预设虚拟磁盘,并在虚拟磁盘中创建与真实磁盘中需共享的真是文件一一对应的虚拟文件,以及接收所述客户端发送的获取共享文件的请求并进行解析,将依据解析结果获取到的共享文件发送给所述客户端;
所述客户端,用于向所述服务器单元发送获取共享文件的请求,以及接收所述服务器单元反馈的共享文件信息。
CN201110028968.1A 2011-01-26 2011-01-26 一种实现共享文件的方法、服务器及系统 Expired - Fee Related CN102622352B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110028968.1A CN102622352B (zh) 2011-01-26 2011-01-26 一种实现共享文件的方法、服务器及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110028968.1A CN102622352B (zh) 2011-01-26 2011-01-26 一种实现共享文件的方法、服务器及系统

Publications (2)

Publication Number Publication Date
CN102622352A CN102622352A (zh) 2012-08-01
CN102622352B true CN102622352B (zh) 2015-02-25

Family

ID=46562275

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110028968.1A Expired - Fee Related CN102622352B (zh) 2011-01-26 2011-01-26 一种实现共享文件的方法、服务器及系统

Country Status (1)

Country Link
CN (1) CN102622352B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103324537A (zh) * 2013-05-17 2013-09-25 Tcl集团股份有限公司 一种资源共享方法及装置
CN107948670A (zh) * 2016-10-12 2018-04-20 北京优朋普乐科技有限公司 一种小文件播放方法及装置
CN106557684B (zh) * 2016-10-14 2019-09-27 北京金山安全软件有限公司 文件扫描方法、装置和终端设备
CN109271264A (zh) * 2018-08-30 2019-01-25 郑州云海信息技术有限公司 一种通信连接建立方法及装置
CN109885257B (zh) * 2019-01-31 2023-01-03 维沃移动通信有限公司 一种磁盘文件读写方法及装置
CN110677455B (zh) * 2019-08-20 2020-11-03 北京航空航天大学 基于分布式哈希的动态均衡账户映射方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5848420A (en) * 1996-06-14 1998-12-08 Eastman Kodak Company System and method for accessing data of a digital camera from a personal computer
CN1272650A (zh) * 2000-05-19 2000-11-08 清华同方光盘股份有限公司 超大容量虚拟光盘文件系统构造方法及其系统硬件结构
CN1776687A (zh) * 2005-12-16 2006-05-24 北京中星微电子有限公司 Fat文件系统中文件分割的方法及其装置
CN101882132A (zh) * 2009-04-27 2010-11-10 深圳市闪联信息技术有限公司 虚拟fat文件系统的创建及读取方法以及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101714933A (zh) * 2008-10-06 2010-05-26 厦门华侨电子股份有限公司 一种播放远程媒体的方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5848420A (en) * 1996-06-14 1998-12-08 Eastman Kodak Company System and method for accessing data of a digital camera from a personal computer
CN1272650A (zh) * 2000-05-19 2000-11-08 清华同方光盘股份有限公司 超大容量虚拟光盘文件系统构造方法及其系统硬件结构
CN1776687A (zh) * 2005-12-16 2006-05-24 北京中星微电子有限公司 Fat文件系统中文件分割的方法及其装置
CN101882132A (zh) * 2009-04-27 2010-11-10 深圳市闪联信息技术有限公司 虚拟fat文件系统的创建及读取方法以及装置

Also Published As

Publication number Publication date
CN102622352A (zh) 2012-08-01

Similar Documents

Publication Publication Date Title
CN108733761B (zh) 一种数据处理方法装置及系统
EP2751695B1 (en) System and method for retaining deduplication in a storage object after a clone split operation
US7676628B1 (en) Methods, systems, and computer program products for providing access to shared storage by computing grids and clusters with large numbers of nodes
US8260831B2 (en) System and method for implementing a flexible storage manager with threshold control
US7069380B2 (en) File access method in storage-device system, and programs for the file access
US9208181B2 (en) Migrating data from legacy storage systems to object storage systems
JP5068252B2 (ja) ストレージシステムクラスタの複数のボリュームにわたってデータコンテナをストライピングするためのデータ配置技術
US8285967B1 (en) Method for on-demand block map generation for direct mapped LUN
CN102622352B (zh) 一种实现共享文件的方法、服务器及系统
US8271559B2 (en) Storage system and method of controlling same
JP2015521310A (ja) 効率的なデータオブジェクトストレージ及び検索
US8185684B1 (en) Method and apparatus for resolving volume identifiers associated with a virtual machine
US9355121B1 (en) Segregating data and metadata in a file system
WO2005111804A2 (en) Extension of write anywhere file system layout
US11151095B2 (en) Cloud-scale file-based filesystem for hybrid cloud storage
WO2004015522A2 (en) Storage virtualization by layering virtual disk objects on a file system
CN101882132A (zh) 虚拟fat文件系统的创建及读取方法以及装置
US8903772B1 (en) Direct or indirect mapping policy for data blocks of a file in a file system
US20200142628A1 (en) Data reduction reporting in storage systems
US11080254B2 (en) Maintaining data associated with a storage device
US10089125B2 (en) Virtual machines accessing file data, object data, and block data
US8984032B2 (en) Method and system for providing storage device file location information
CN113811867A (zh) 用于文件系统中的文件的硬链接操作
CN105549912A (zh) 同时包含多种类操作系统的服务器集群的存储方法
EP2951674B1 (en) Method and apparatus to enable finer-grained, scalable allocation of storage in a data storage system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: BEIJING IGRS YUNSHI INFORMATION TECHNOLOGY CO., LT

Free format text: FORMER OWNER: SHENZHEN IGRS INFORMATION TECHNOLOGY LTD.

Effective date: 20120807

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 518057 SHENZHEN, GUANGDONG PROVINCE TO: 100080 HAIDIAN, BEIJING

TA01 Transfer of patent application right

Effective date of registration: 20120807

Address after: 100080, room 10, two North 0811 street, Haidian District, Beijing, Haidian

Applicant after: Beijing Igrs Yunshi Information Technology Co., Ltd.

Address before: 518057 Guangdong city of Shenzhen province Nanshan District science and Technology Park South seven Digital Technology Park A3 building 6 floor

Applicant before: Shenzhen Igrs Information Technology Ltd.

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150225

Termination date: 20210126