代码拉取完成,页面将自动刷新
同步操作将从 ygq/ctjdfs 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
分为:client客户端、trancker调度端、storage数据端
#上传
客户端先把文件的md5值计算和文件的大小计算后请求trancker,获取分配进行存储的storage的ip和端口(上传地址)
trancker根据维系的storage来分配空闲的服务器,根据每一台storage存储20mb来计算。然后把这个文件id
与分配的每一个storage及大小存储到记录表中
文件hash值:[
0-20:192.168.11.11:2689,
20-40:192.168.11.22:2689
]
然后把这个记录对象返回给客户端
客户端然后遍历获取的storage的ip和端口,进行按照对应的块范围进行上传
storage接收文件流进行存储
客户端全部上传完后,返回给调用端文件id(即文件hash值)
#下载
客户端先根据文件id,请求trancker服务端
trancker服务器根据id,到记录表中获取对应的记录对象,并返回给客户端
客户端得到对应记录对象,遍历请求每一个storage的ip和端口,进行下载文件
然后把每一块文件进行按照对应块位置进行合并
客户端负责对文件的分块上传到不同的storage
客户端负责从不同的storage中下载文件后,合并
对于trancker和storage的高可用先不实现
线程可以后期采用线程池
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。