网盘技术


网盘,又称网络U盘、网络硬盘,是由网络公司推出的在线存储服务。向用户提供文件的存储、访问、备份、共享等文件管理等功能,用户可以把网盘看成一个放在

网络上的硬盘或U盘,不管你是在家中、单位或其它任何地方,只要你连接到因特网,你就可以管理、编辑网盘里的文件。不需要随身携带,更不怕丢失。


中国常见的网盘有:

115网盘(简介地址:http://baike.baidu.com/view/3067387.htm)

华为网盘(简介地址:http://baike.baidu.com/view/7033564.htm)

金山快盘(简介地址:http://baike.baidu.com/view/3640349.htm)


国外比较流行的网盘有:

dropbox(简介地址: http://blog.csdn.net/sbvfhp/article/details/8783573

Google Drive (简介地址:http://blog.csdn.net/sbvfhp/article/details/8783609)

微软skydrive (简介地址:http://baike.baidu.com/view/1431400.htm)

网盘分两类

1、无同步功能

该类云存储方案就相当于一个“远程硬盘”。 用户可以将数据存储在服务器上,客户端(用户PC机、或者手机上)可以下载、上传数据。但

客户端(用户 PC机、或者手机上)没有和服务器上一一对的可以自动同步的文件结构(文件和文件夹)。

首先用户要注册帐号、并且登录。登录后看到的文件、文件夹都是服务器上的:用户可以新建文件夹,这个时候在服务器上创建了一个文件夹

用户可以把本地的任何文件(比如影视、歌曲、文档)拖入到刚才(在服务器上)新建的文件夹里,这时候就是将该文件上传到服务器。用户可以将服

务器上的文件(或者说下载)到本地磁盘。这时候就是一个将服务器资源下载来客户端(用户PC机或者手机)上。

这种云存储没有与服务器对应的同步文件结构,没有自动同步功能。

这种网盘需求处理的核心技术有:上传、下载、存储数据的加密、上传数据的加密。


2、有同步功能

该类云存储方案实际上就是一个人性化UI的SVN”。是一种具备同步功能的云存储技术。

第一次同步,客户端(用户PC机、或者手机)会把本地数据上传到服务器。当然服务器和客户端上每个版本的数据都会有版本号。

下次同步操作的时候客户端(用户PC机、或者手机)上的数据会和服务器上的数据进行对比。然后根据版本号,将服务端或者客户端(用户PC机、或者手机)

的最新修改数据同步。



该类网盘的核心技术点一:同步:

近来研究Dropbox,想看看它的同步怎么做的,没找到官方资料,不过据推测应该用的就是rsync,于是,看看鼎鼎大名的rsync是怎么实现的吧

rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了——remote sync


rsync特点:

快速:第一次同步时 rsync 会复制全部内容,但在下一次只传输修改过的文件。rsync在传输数据的过程中可以实行压缩及解压缩操作,因此可以使用更少的带宽。

安全:可以使用scpssh等方式来传输文件,当然也可以通过直接的socket连接。


先说基本的rsync算法,简单的说是三步:

1、按固定大小将A分为多块,每块都计算出一个32位的滚动哈希值和一个128位的MD4(有些也用MD5),发给B一端。

2B一端从位置0开始按的同样块大小的滚动哈希值,查找看是否命中A给的某个滚动哈希值,若匹配,则表明B文件中的这块内容与对应的A中的那块内容很可能是

一致的,但由于 32位的哈希值强度不够,因此再计算 MD4,若还是匹配,则确认是一致内容,这时 B发给 A端匹配的段号。对于那些不能匹配的内容,则发给 A端原始内容。

3A端得到B端给的匹配信息,构造一个与B一致的复本,若是匹配的块,则拷贝原A文件中对应的块,若是不匹配内容则追加之。

需要注意的是必须在服务器AB上都安装rsync,其中A服务器上是以服务器模式运行rsync,而B上则以客户端方式运行rsync。这样在web服务器A上运行rsync

守护进程,在 B上定时运行客户程序来 备份 web服务器 A上需要备份的内容。  

滚动哈希值的设计基于Adler32算法,使得2~K+1字节的哈希可以根据1~K字节哈希和1K+1字节的内容快速计算得到,这可以提高从位置0开始依次计算滚动哈希

值的效率。

据试验一般来说块大小取500~1000字节效果比较好。


该类网盘的核心技术点二:openssl


网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的

使用。


该类网盘的核心技术点三:上传下载

上传、下载的实现方案比较多,筛选优秀的方案待续……



你可能感兴趣的:(网盘技术)