嘟嘟社区

这种网盘技术架构怎么实现


上传到专用的上传机器,比如up.xxx.com

上传完成后,给出下载链接 down.xxx.com/aaa.zip

然后同步到存储集群里的某台机器,比如s88.xxx.com

那么问题来了,如何实现,在同步前(在专用的上传机器)和同步后(在存储机里),使用同一个域名下载到文件?

这个问题已经超纲了。 MJJ们表示不会
emm 完全听不懂啥意思
同步前后都用地址重写就可以了,就相当于短网址,虽然生成的短网址地址是固定的,但是最终跳转的地址,数据库是可以控制的。
说起来很复杂也很简单,加钱。
描述不清看不懂
有没有这样一个可能 ,三个域名都是在同一台服务器

feixiang 发表于 2022-7-13 00:07
同步前后都用地址重写就可以了,就相当于短网址,虽然生成的短网址地址是固定的,但是最终跳转的地址,数据 …

卧槽   是个办法

建一张表记一下或者redis存一存(其实建表记一下一般是必须的),然后根据情况直接,请求下载地址的api之后,直接根据查表情况,去对应的机器查了然后传输就行了

kmbeer 发表于 2022-7-13 00:15
卧槽   是个办法

我提供一个思路,毕竟我也不是专业的,只能供你参考下。数据库结构也简单。程序做一个判断就好了。比如 /2022070100001.zip 虚拟地址 数据库需要几个列就可以了,分别是状态、文件虚拟路径,上传机文件真实路径、存储机文件真实路径。   数据库有一个标记列 标记文件当前存在的状态,0就是都没有存放,1就是存在上传机上,2就存在存储机。当上传开始,就写0,上传机收到文件并检验完整性,写入上传机真实路径,并修改状态为1。当后台同步程序把上传机的文件同步存储机上后,写入到存储机文件真实路径,修改状态2,上传机检验下上传机和存储机的md5是否一致,如果一致,就删掉上传机的数据。剩下的就是程序来根据状态跳转了。