综合交通大数据智能计算平台项目 私有云盘(功能匹配百度网盘)

项目简介

  • 项目架构

该项目基于Linux,C/C++。

  • 项目描述

该项目是⼀个能在虚拟目录下执⾏传输⽂件下载⽂件创建⽂件夹等操作的⽂件共享系统,实现功能与百度网盘类似。服务器采用创建线程池并结合epoll监听的⽅式处理客户端的命令,客户端可实现传输下载文件的功能。整个⽂件系统采用虚拟目录设计,使用mysql存储文件信息,用户账号。本人作为后台研发组成员,主要完成了上传下载密码验证断点续传mmap内存映射keepalive心跳包功能。


项目详细描述

该项目是一个功能匹配百度网盘的私有云盘项目。用户可以自由的传输或下载自己想要的文件。

整个文件系统采用虚拟目录设计,虚拟目录意味着所有用户的所有文件实际上都存放在同一个文件中,各个用户只能够看到自己的文件,不能够看到别人的文件,通过mysql数据库记录文件的名称,路径,拥有者,以及MD5值,文件的实际存储是通过MD5值而不是文件名存储。这样可以大大的减小了空间的消耗,避免了文件的重复,不过在设计上提高了难度。

本人实现的功能如下啊:

  1. 普通命令

类似于linux中的 ls, cd , pwd, mkdir, rmdir ,puts(上传文件),gets(下载文件)等命令的实现。

  1. 密码验证

采用与linux密码验证相同的方法,即将输入的密码进行编码加密后再与 /etc/shadow 中的密码进行比较。相同则登录成功,反之失败。

  1. 文件断点续传

如果某一个文件传输或者下载到一半中途断开,重新下载的时候可以直接冲断开的地方下载。

  1. mmap大文件映射

当文件大于100M时直接采用内存映射的方式,避免了CPU读取磁盘花费的时间。

  1. 客户端长时间无反应时断开连接

该操作类似于keepalive心跳包的设置。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值