您的当前位置:首页正文

云盘初步

来源:要发发知识网

      肖老师亲自带队,打算写一个Linux版云盘,还要实现同步盘功能,什么都没说,就让我们自己先了解下,擦。。。

其实百度有个Linux版云盘客户端,可惜没有同盘。

无奈翻墙找dropbox参考,发现dropbox确实做到不错。

还有基于Linux的ownCloud做的也不错,跟我们要做的很相似。。。

找了好多文章,才算对项目有了点头绪。

云存储网盘系统结构模型:

      存储层、基础管理层、应用接口层、访问层;我们要做的是应用接口层、访问层。

应用接口层:

      应用接口层是云存储最灵活多变的部分。不同的云存储运营单位可以根据实际业务类型,开发不同的应用服务接口,提供不同的应用服务。应用接口层融合了SAMBA、邮件系统、Web Service,提供用户认证。用户权限管理、资源的共享与输出等。

访问层:

      任何一个授权用户都可以登录到系统享受独立的网盘服务。系统为用户提供两种访问模式:客户端模式和Web模式。

自己画架构图

�关键技术:

     分布式文件系统与集群结构(后台服务器部分的不用我们做吧)、用户权限与数据安全(好像得自己做吧)、客户端与web双重应用(自己要做的部分)。

1、集群架构(MooseFS集群为例):

2、用户权限与数据安全:

      基于用户空间的权限控制、数据隔离、信息加密、传输加密等技术手段,来保障用户数据的私密性与安全性。

权限控制:

      系统面向多业务和多用户,任何对资源的访问都经过严格的权限控制。只有用户确认共享的资源才能被其他用户或业务进行访问。通过用户管理,实现用户身份的认证,为用户分配密钥,维护用户的密钥链。

数据隔离:

      系统为每个用户创建独立的存储空间,根据用户标识和对应权限对用户空间的数据进行访问控制,避免未授权用户访问到其他用户的数据以及用户信息;各种存储服务在进行数据存储和读取时,每种应用都必须拥有自己独立的权限,系统根据不同的应用将数据隔离,避免数据越权访问。

数据加密:

      反正得加密。。。

3、双重应用模式:

(1)客户端

      客户端为用户提供本地挂载。通过把网盘挂载到本地,用户可以想操作自己本地磁盘一样对网盘进行访问,与此同时,用户还可以通过鼠标右键的下拉菜单实现对文件和文件夹的压缩/解压以及加密/解密。外加基于SSH和RSYNC实现加密传输和同步盘机制。

(2)Web端

提供网盘的Web服务,综合了邮件系统和基于PGP的文件加密存储:即支持文件的上传与下载;支持文件目录的浏览;支持文件和文件夹的移动、重命名与删除;支持文件的在线编辑与打开;支持文件以邮件方式外发;支持文件和文件夹压缩;通过加解密插件实现文件上传下载过程中的加解密。

PS:

      SSH,Secure Shell 。是建立在应用层和传输层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。

      Rsync,remote synchronize 。顾名思意就知道它是一款实现远程同步功能的软件,它在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。rsync 是用 “rsync 算法”提供了一个客户机和远程文件服务器的文件同步的快速方法,而且可以通过 ssh方式来传输文件,这样其保密性也非常好,另外它还是免费的软件。

Rsync 包括如下的一些特性:

能更新整个目录和树和文件系统;

有选择性的保持符号链链、硬链接、文件属于、权限、设备以及时间等;

对于安装来说,无任何特殊权限要求;

对于多个文件来说,内部流水线减少文件等待的延时;

能用 rsh、ssh 或直接端口做为传输入端口;

支持匿名 rsync 同步文件,是理想的镜像工具;