云存储项目
Posted 黑桃_K_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了云存储项目相关的知识,希望对你有一定的参考价值。
Cloud_Storage
云存储 项目
项目介绍:
客户端功能介绍:
在客户端下生成文件scandir 在文件client_util.hpp 文件第235行中#define 定义可自行修改
还生成文件data.conf 在文件 client_util.hpp 文件第236行中#define 定义可自行修改
scandir为监控文件,客户端将每隔1s(可设置,在client_util.hpp 314行 修改usleep时间即可) 对文件进行扫描
判断有无文件发生变化(利用最后一次修改时间判断),发生改变,自动上传到服务端,
服务端ip和端口可以在client_cloud.cpp 中进行设置;
服务端功能介绍:
自动创建文件backup (存储上传文件) 、 packdir(压缩后文件存储) 、backup.conf(记录文件存储信息,
)
在文件backup.conf 文件中记录文件信息
未压缩文件记录:
filename.txt=filename.txt
压缩文件记录:
filename.txt=./packdir/filename.txt.pack
两个线程并发执行,一个监控packup文件下文件是否为非热点文件,是则压缩;
另一个作为服务器监听客户端的请求;
客户端通过ip+端口/list 查看当前服务器packdir中文件,可点击下载操作(支持断点续传操作)
断点续传可在我的csdn:http://t.csdn.cn/8Y7l6
博客链接 中查看具体技术实现;
使用方法:
客户端文件:
client_util.hpp
client_cloud.cpp
httplib.h
运行之后会在当前路径下创建一个scandir 文件夹,
程序每间隔1s会监控一次文件夹下文件,
判断是否有文件发生改变(最后一次修改时间),
有修改就自动上传存储。
在client_cloud.cpp里面设置服务器的ip和端口即可。
服务端文件:
其他文件都为服务端文件包括httplib.h
全部下载后:
生成的可执行程序为为cloud;
运行后会在当前路径下创建文件夹backup用来保存上传未压缩文件;
还会创建一个packdir文件夹存放压缩后文件
压缩文件根据util.hpp 文件里面的451行的 _hot_time 来判断是否为非热点文件
(即经过 _hot_time 时间之后文件没有被人访问过,即为非热点文件)
就可以对文件进行压缩;
例如:
filename.txt 压缩后 filename.txt.pack
源代码::github.com/K-create-xue/Cloud_Storage
源代码链接
以上是关于云存储项目的主要内容,如果未能解决你的问题,请参考以下文章